1

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 {...は、アプリケーションが構成を解析するときに実行される Perl コードとして解釈されます...

だから私はこのようなことを試みましたが、うまくいきませんでした:

log4perl.appender.av_std_LOGFILE.filename=\
    sub { print "$av_std_LOGFILE"; }

スクリプト内のサブなしで変数の結果を取得する方法はありますか?

4

1 に答える 1