%TEST ;
...
for {
sub atest
}
sub atest {
...
push $TEST { TEST1 }[0] = "some value "
}
如何在不了解索引的情况下将值推送到数组的哈希值?
我如何实现这一目标?
答案 0 :(得分:34)
这将通过“TEST1”键为哈希存储的数组末尾添加值。
push( @{ $TEST { TEST1 } }, "some value ");
我使用@{...}
取消引用数组引用。 Perl会自动创建内部数组引用。
答案 1 :(得分:8)
push
函数接受一个数组,因此您必须将其引用回数组:
push @{$TEST{TEST1}}, "some value";
另外,你的风格让我觉得你没有使用strict
pragma。编写该代码的更好方法是:
#!/usr/bin/perl
use strict;
use warnings;
sub atest {
my $test = shift;
push @{$test->{TEST1}}, "some value";
}
my %test;
atest(\%test);
use Data::Dumper;
print Dumper \%test;
答案 2 :(得分:1)
我想你想要:
%TEST;
$TEST{TEST1}[0] = "some value"
push @{ $TEST{TEST1} }, "some other value"
现在,$ TEST {TEST1}应该相当于["some value", "some other value"]
。