我想使用Perl代码将一些日志添加到我的CGI脚本中:
open(LOG, ">/path/to/my.log") or die;
print LOG "Some content...\n";
close(LOG);
但是,日志永远不会写入我的日志文件,而脚本仍在正确处理请求。
我对Apache,CGI和Perl不是很熟悉,所以大师请发光。
答案 0 :(得分:2)
这可能是一个许可问题。脚本的运行者(可能是用户:apache
,httpd
或nobody
)无权写入该文件。但是,您必须检查$!
包含的内容。还要在脚本运行时尝试检查Apache的ErrorLog
文件。
我会将您的代码重写为:
use CGI::Carp qw( croak );
open my $log, '>', '/path/to/my.log' or croak "Error opening file: $!";
print $log "Some content...\n";
close $log;
答案 1 :(得分:0)
问题已解决:只有重启Apache后,对Perl脚本的更改才会生效。不知道为什么它的行为是这样的,因为我认为Perl是一种解释型语言,可以动态修改......