0

私の問題は、perlを使用してホスト名を設定しようとするexim.confにあります

exim.conf 内

host = "${perl{func}{arg}}"

exim.pl.local では、次の方法で exim.conf から Exim 変数にアクセスします。

my $phost   = Exim::expand_string('$primary_hostname');

ただし、値は評価されず、「$phost」の値は次のようにリテラルになります。

print $phost   //outputs ${perl{func}{arg}}.

サブルーチンの結果を取得するために exim.conf または exim.pl.local のコードを変更する方法はありますか?

4

1 に答える 1

0

/etc/exam.pl.local で

sub getprimaryhost {
   my $phost   = Exim::expand_string('$primary_hostname');
   return $phost;
}

次に /etc/exim.conf に

smtp_active_hostname = ${perl{'getprimaryhost'}}

smtp_active_hostname は、上記の場合に sub が返すものに設定され、primary_hostname の値になります。また、これは primary_hostname では機能しないようです。

于 2017-06-01T21:11:56.763 に答える