HTTP::Daemon 和调试错误代码
HTTP::Daemon and debug error codes
当守护进程本身无法初始化时,如何调试错误代码:
my $d = HTTP::Daemon->new(LocalAddr=>$ae::Settings{ip},
LocalPort=>$ae::Settings{port},
ReuseAddr=>'1') || die "error";
我想要的是更具体的错误代码,而不是简单的 'die'。例如,如果我无法绑定到某些端口,等
您可以在初始化底层套接字时检查 $!
(即来自底层系统调用的 errno)是否存在问题。而不仅仅是在 HTTP::Daemon::new
中创建监听器
HTTP::Daemon->new(...) or die "error: $!"
如果我不是 root 并且我 运行 这是针对特权 ( < 1024 ) 端口或已在使用的更高端口:
#!perl
# HTTP_daemon.pl
use HTTP::Daemon;
use warnings;
my $d = HTTP::Daemon->new(LocalAddr=>"127.0.0.1",
LocalPort=>"88",
ReuseAddr=>'1') || die "$!";
我得到:
Permission denied at HTTP_daemon.pl line 4.
对于与 HTTP 相关的错误和状态代码,请使用 HTTP::Status
。
当守护进程本身无法初始化时,如何调试错误代码:
my $d = HTTP::Daemon->new(LocalAddr=>$ae::Settings{ip},
LocalPort=>$ae::Settings{port},
ReuseAddr=>'1') || die "error";
我想要的是更具体的错误代码,而不是简单的 'die'。例如,如果我无法绑定到某些端口,等
您可以在初始化底层套接字时检查 $!
(即来自底层系统调用的 errno)是否存在问题。而不仅仅是在 HTTP::Daemon::new
HTTP::Daemon->new(...) or die "error: $!"
如果我不是 root 并且我 运行 这是针对特权 ( < 1024 ) 端口或已在使用的更高端口:
#!perl
# HTTP_daemon.pl
use HTTP::Daemon;
use warnings;
my $d = HTTP::Daemon->new(LocalAddr=>"127.0.0.1",
LocalPort=>"88",
ReuseAddr=>'1') || die "$!";
我得到:
Permission denied at HTTP_daemon.pl line 4.
对于与 HTTP 相关的错误和状态代码,请使用 HTTP::Status
。