Кажется, я помню, что форматы 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, или я что-то неправильно понимаю?