【发布时间】:2010-12-31 21:59:27
【问题描述】:
这是我正在使用的代码 sn-p:
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。
尺寸=,位置=
foreach 语句显然是错误的,因为不仅没有 $size 和 $position 的值,而且它只循环了一次而不是 3 次。我尝试了各种变量前缀的变体,但都没有找到。
我做错了什么?
【问题讨论】:
标签: arrays perl hash reference perl-data-structures