Как долго форматы Perl 5 могли обрабатывать лексические переменные? - PullRequest
2 голосов
/ 09 ноября 2010

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

1 Ответ

4 голосов
/ 10 ноября 2010

С 5.001? От perlform:

Лексические переменные (объявленные с "my") не видны в формате, если формат не объявлен в области действия лексической переменной. (Они не были видны до версии 5.001.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...