これは私が取り組んでいるコードスニペットです:
my %photo_details = (
'black_cat' => (
('size' => '1600x1200', 'position' => -25),
('size' => '1280x1024', 'position' => 25),
('size' => '800x600', 'position' => 0),
),
'race_car' => (
('size' => '1600x1200', 'position' => 10),
('size' => '800x600', 'position' => 5),
),
);
my $photo = 'black_cat';
foreach my $photo_detail ($photo_details{$photo})
{
my $size = $photo_detail{'size'};
my $position = $photo_detail{'position'};
print ("size = $size, position = $position\n");
}
私が期待しているのは次のとおりです。
サイズ = 1600x1200、位置 = -25
サイズ = 1280x1024、位置 = 25
サイズ = 800x600、位置 = 0
私が得るものは次のとおりです。
C:\Test.pl 行 23 の連結 (.) または文字列で、初期化されていない値 $size が使用されています。
C:\Test.pl 行 23 の連結 (.) または文字列で、初期化されていない値の $position が使用されています。
サイズ = 、位置 =
$size と $position の値がないだけでなく、ループを 3 回ではなく 1 回しか通過していないため、foreach ステートメントは明らかに間違っています。変数プレフィックスのあらゆる種類のバリアントを試しましたが、機能するものはありませんでした。
私は何を間違っていますか?