У меня есть Perl-скрипт, в котором (пропущено много ненужных строк)
use HTML::Entities;
my @keys = ('ID', 'first', 'last'); # data is not actually constant
my @encodedKeys = map(encode_entities, @keys);
который работает без ошибок. Но когда я пытаюсь получить доступ к значениям в массиве, я получаю ошибки:
Use of uninitialized value $encodedKeys[0] in join or string at myfile.pl line 48.
Если я удаляю сопоставление, код работает правильно, то есть переменные не являются нулевыми или пустыми строками. Что я делаю неправильно? Есть ли хороший идиоматический способ сделать это? (Очевидно, что это тривиально делать последовательно.)