Будущее осуждаемых специальных переменных
Устаревшие специальные переменные (например, $#
а также $*
) потерян навсегда или возможно ли их повторное использование в будущей версии Perl?
2 ответа
Нет причин, по которым их нельзя было бы повторно использовать, если use 5.16
или что-то подобное присутствует, но это было бы ужасно маловероятно. Во-первых, потому что это просто напрашивается на неприятности (это может запутать людей), во-вторых, потому что специальные переменные в любом случае неприятны, а введение новых редко бывает хорошей идеей. Вы, вероятно, можете считать их потерянными навсегда.
Нет проблем с их использованием в версиях Perl, где они устарели.
Я использую $*
переменная в моем модуле Что бы это ни создавало Perl6-иш-звезду (*
) для Perl 5.
Обязательно используйте псевдонимы glob для присваивания переменной. Это обойдет любые устаревшие предупреждения и удалит любую магию связи из переменной.
** = \"\x{27}"; # assigns to $*
Если вы хотите сделать это терсно из командной строки, вы можете поместить эту строку в модуль:
В файле 'q.pm', установленном в вашем пути к библиотеке perl:
** = \"\x{27}";
Тогда вы могли бы написать:
perl -Mq -e '... use $* here ...'