#!/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
a ではなく b が表示されるのはなぜですか? これは私には非常に予期しない動作のように思えます。
名前が置換された変数を使用しようとしています。実際には、代入が forloop で行われているため、変数を宣言しないことはできず、したがってレキシカル スコープが異なります。