我有一个子程序可以在表达式中定义格式。eval
如果此子例程被多次调用,perl 会警告格式已被重新定义。
这段代码:
use warnings;
routine();
routine();
sub routine{
my $s = "FAIL";
my $def = "format =\n@<<<<@>>>>\n\$s, \$s\n.";
eval $def;
write;
}
印刷
FAIL FAIL
Format STDOUT redefined at (eval 2) line 1.
FAIL FAIL
是否可以删除子程序末尾的格式声明?