我想在我的腳本中使用Log :: Log4perl配置文件中的Perl變量。我閱讀了文檔,發現我可以使用一個子程序,但如果可能的話,我希望它能做得更簡單一些。如何在我的Log :: Log4perl配置文件中使用Perl變量?
我想設置的文件名我的appender:
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"; }
有沒有辦法獲得變量的結果沒有我的腳本內的子?
你說'$ av_std_LOGFILE'設置在一個腳本幾次和一個模塊幾次。這是什麼? – ThisSuitIsBlackNot
另外,你不應該用'&'調用子程序,除非你知道那是做什麼的。 ''return&av_getLogfileName();''應該返回av_getLogfileName();(或者更好的是,返回av_get_logfile_name();',混合snake case和camel case確實很難閱讀,並且在Perl中一般首選snake case)。 – ThisSuitIsBlackNot