Ответ 1
От perldoc constant
:
У вас могут возникнуть проблемы, если вы используете константы в контексте, который автоматически цитирует открытые слова (как это верно для любого вызова подпрограммы). Например, вы не можете сказать
$hash{CONSTANT}
, потому чтоCONSTANT
будет интерпретироваться как строка. Используйте$hash{CONSTANT()}
или$hash{+CONSTANT}
, чтобы предотвратить запуск механизма цитирования с помощью слова. Аналогичным образом, поскольку оператор=>
сразу приводит в действие одно слово слева от него, вы должны сказатьCONSTANT() => 'value'
(или просто использовать запятую вместо большая стрелка) вместоCONSTANT => 'value'
.