【发布时间】:2016-09-08 08:33:33
【问题描述】:
似乎没有很多人使用包含哈希的数组的例子。 我想检查我在 sub 中构建的数组,但我在访问该结构时遇到了一些问题。也许我并没有想象它存在的方式。这是一些代码的示例:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my (%data, %data2, @holding);
%data = (
'monday' => "This stuff!",
'tuesday' => "That stuff!!",
'wed' => "Some other stuff!!!"
);
push @holding, %data;
%data2 = (
'monday' => "Yet more stuff... :-P ",
'tuesday' => "Some totally different stuff!",
'wed' => "What stuff is this?"
);
push @holding, %data2;
foreach my $rows(@holding){
foreach my $stuff (keys %{$holding[$rows]} ){
print "$holding[$rows]{$stuff}\n";
}
}
我得到的错误信息:
Argument "wed" isn't numeric in array element at /home/kingram/bin/test line 27.
Can't use string ("wed") as a HASH ref while "strict refs" in use at /home/kingram/bin/test line 27.
我在 perl 中使用数组的工作并不广泛,所以我确定我缺少一些基本的东西。
当我使用 Dumper 时,我期望 VAR1 和 VAR2 表达两个不同的行,但我得到了
$ ~/bin/test
$VAR1 = [
'wed',
'Some other stuff!!!',
'monday',
'This stuff!',
'tuesday',
'That stuff!!',
'wed',
'What stuff is this?',
'monday',
'Yet more stuff... :-P ',
'tuesday',
'Some totally different stuff!'
];
【问题讨论】: