use constant A => \'...\'; и sub A() {\'..\'} практически одно и тоже.
Так вот sub A() оптимизируется во время компиляции в отличии от *q = \\\'...\';
Насчет ценных указаний, попробуй изменить A и тебя пошлют куда подальше.( чем не ценные указания
)
Используй конкатенацию вместо интерполяции(она и работает быстрее)
Насчет зарезервированных переменных, посмотри на эти три кода:
stah@banquet$ perl -e \'use strict; $q = 1;\'
Global symbol "$q" requires explicit package name at -e line 1.
Execution of -e aborted due to compilation errors.
stah@banquet$ perl -e \'use strict; $a = 1;\'
stah@banquet$ perl -e \'use strict; $b = 1;\'
как ты думаешь почему последние 2 работают, а первый нет. Вот тебе и ответ на вопрос. perldoc -f sort