Будущее осуждаемых специальных переменных

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

2 ответа

Решение

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

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

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

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

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

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

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

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

Тогда вы могли бы написать:

perl -Mq -e '... use $* here ...'
Другие вопросы по тегам