замена переменной perl в имени переменной

#!/usr/bin/perl
my $var_a;
$sub_a = "a";
$var_a = "a";
print ${var_."$sub_a"},"\n";


$sub_b = "b";
$var_b = "b";
print ${var_."$sub_b"},"\n";

__DATA__

b

Почему напечатано b, а не a? Это кажется мне очень неожиданным поведением.

Я пытаюсь использовать переменную с подставленным именем. На практике я не могу просто не объявлять переменную, поскольку присваивание выполняется в цикле for и, следовательно, имеет другую лексическую область видимости.

5
задан EricR 2 August 2012 в 19:19
поделиться