我目前在家工作(周日!),我试图找出为什么我的Perl脚本从调用它的地方向PHP返回NULL。但是,我不知道如何调试Perl脚本本身。 PHP文件返回一个警告,我正在尝试对非数组对象执行数组操作(因为预期的数组实际上是由PHP返回的NULL)。 Web服务器的日志也只记录了此警告 - 没有Perl错误。
是否存在特定“外部”的地方?日志存储在服务器上?或者,有没有更好的方法来调试从主PHP文件中需要的PHP文件运行的Perl文件?调试是不必要的(我不需要调试模式),但我想至少看到错误或警告。
答案 0 :(得分:2)
您可以在Perl脚本的顶部添加以下代码:
sub debug_log
{
open my $log_fh, ">>", "/tmp/debug.log";
print $log_fh $_[0];
warn $_[0];
close $log_fh;
}
$SIG{__WARN__} = \&debug_log;
$SIG{__DIE__} = \&debug_log;
这样,所有警告和die
消息都应以/tmp/debug.log
结尾。