#!/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 и, следовательно, имеет другую лексическую область видимости.