Я использовал прагму [constant], и у меня есть быстрый вопрос о том, как я могу объявить список констант:
use constant {
LIST_ONE => qw(this that the other), #BAD
LIST_TWO => ("that", "this", "these", "some of them"), #BAR
LIST_THREE => ["these", "those", "and thems"], #WORKS
};
Проблема с последним в том, что он создает ссылкусписок:
use constant {
LIST_THREE => ["these", "those", "and thems"],
};
# Way 1: A bit wordy and confusing
my $arrayRef = LIST_THREE;
my @array = @{$arrayRef};
foreach my $item (@array) {
say qq(Item = "$item");
}
# Way 2: Just plain ugly
foreach my $item (@{&LIST_THREE}) {
say qq(Item = "$item");
}
Это работает, но уродливо.
Есть ли лучший способ создания постоянного списка?
Я понимаю, что константы - это действительно дешевый способ создания подпрограммы, которая возвращает значение константы.Но подпрограммы также могут возвращать список.
Каков наилучший способ объявления списка констант?