我似乎记得Perl 5格式只适用于包变量,PBP似乎支持第449页:
格式依赖全局变量进行配置,并依赖于包变量来格式化数据(参见第5章)。
但快速测试似乎显示不同(用5.8.9,5.10.0和5.12.1测试):
#!/usr/bin/perl
use strict;
use warnings;
my $foo = "hello world";
write;
format STDOUT =
@<<<<<<<<<<<<<<<
$foo
.
在某些版本的Perl 5中是否有此更改,或者我误解了某些内容?
答案 0 :(得分:4)
自5.001以来?来自perlform
:
除非在词法变量的范围内声明格式,否则词法变量(用“my”声明)在格式中不可见。 (在版本5.001之前,它们根本不可见。)