Если вам действительно нужно назвать их, то хеш должен работать так же хорошо.Я не рекомендую это, но вы можете сделать это.Я просто показываю вам, как «называть» вещи систематическим образом, так же, как вы используете первоклассные переменные.
my %hash;
my $i = 0;
for ( @list ) {
$hash{ 'num' . ++$i } = $_;
}
Опять же, это довольно бессмысленно для имен чисел в соответствии с их порядком, когда массив делает что-то похожее, плюс вам никогда не придется беспокоиться о нарушении лексикографического порядка.
Итак, подумайте о проблеме, которую вы пытаетесь решить, назвав переменные, чтобы решить, является ли это наилучшим способом.
Я только что вспомнил, что сделал, когда хотел набрать как можно меньше отличающихся от скалярного синтаксиса.Он основан на том факте, что *_
является глобом, но в GLOB есть определенные слоты, которые не используются.
Таким образом, вы можете использовать local %_
;
Таким образом, есть только 3 дополнительных символов для ввода любого из этих типов псевдо-переменных:
$_{num001} += 43;
Конечно, это то же количество дополнительных символов, которое вы должны ввести также
$v{num001} += 43;
.