Будущее осуждаемых специальных переменных - PullRequest
1 голос
/ 29 июля 2011

Устаревшие специальные переменные (такие как $# и $*) теряются навсегда или возможно их повторное использование в будущей версии Perl?

Ответы [ 2 ]

6 голосов
/ 29 июля 2011

Нет причин, по которым их нельзя было бы повторно использовать, если имеется соответствующий use 5.16 или что-то подобное, но это было бы крайне маловероятно. Во-первых, потому что это просто напрашивается на неприятности (это может запутать людей), во-вторых, потому что специальные переменные в любом случае неприятны, а введение новых редко бывает хорошей идеей. Вы, вероятно, можете считать их потерянными навсегда .

2 голосов
/ 29 июля 2011

Нет проблем с их использованием в версиях Perl, где они устарели.

Я использую переменную $* в моем модуле Независимо от , которое создает Perl6-иш, независимозвезда (*) для Perl 5.

Обязательно используйте псевдонимы глобуса для назначения переменной.Это обойдет любые устаревшие предупреждения и удалит любую магию связи из переменной.

** = \"\x{27}";  # assigns to $*

Если вы хотите сделать это терсно из командной строки, вы можете поместить эту строку в модуль:

В файле 'q.pm', установленном в пути к вашей библиотеке perl:

** = \"\x{27}";

Тогда вы можете написать:

perl -Mq -e '... use $* here ...'
...