我想在 Log::Log4perl 配置文件中使用我的脚本中的 Perl 变量。我阅读了文档,发现我可以使用子例程,但如果可能的话,我想做得更简单一些。
我想为我的附加程序设置文件名:
log4perl.appender.av_std_LOGFILE.filename="whateverfilename.log"
但是这样做,它是一个固定值。
我在脚本中的变量中有文件名,并希望在运行时使用它:
log4perl.appender.av_std_LOGFILE.filename=\
sub { return &av_getLogfileName(); }
这是子程序:
sub av_getLogfileName
{
return $av_std_LOGFILE;
}
这可行,但我想避免在我的脚本中使用 sub,因为返回值非常简单。
文档说:
以字符串开头的每个值
sub {...
都被解释为在应用程序解析配置时要执行的 Perl 代码......
所以我尝试了这样的事情,但没有奏效:
log4perl.appender.av_std_LOGFILE.filename=\
sub { print "$av_std_LOGFILE"; }
有没有办法在我的脚本中没有 sub 的情况下获得变量的结果?