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