2
我有一個子程序在eval
表達式中對format進行了刪除。如果這個子程序被多次調用,perl會警告已經重新定義了一種格式。避免在eval中重新定義perl格式
此代碼:
use warnings;
routine();
routine();
sub routine{
my $s = "FAIL";
my $def = "format =\[email protected]<<<<@>>>>\n\$s, \$s\n.";
eval $def;
write;
}
打印
FAIL FAIL
Format STDOUT redefined at (eval 2) line 1.
FAIL FAIL
是否有可能在子程序結束時刪除格式的聲明?
你有沒有考慮過使用Perl6 :: Form?必須更好。完全避免這個問題。 – ikegami
'使用診斷;' – mob
我只是試圖快速修復一個古老的模塊。我很確定開發者沒有想到這個子被稱爲不止一個。原來這是錯誤的:) – ajwood