%TEST ;
...
for {
sub atest
}
sub atest {
...
Push $TEST { TEST1 }[0] = "some value "
}
インデックスについて何も知らずに値を配列のハッシュにプッシュするにはどうすればよいですか?
どうすればこれを達成できますか?
これにより、「TEST1」キーによってハッシュに格納された配列の最後に値が追加されます。
Push( @{ $TEST { TEST1 } }, "some value ");
@{...}
配列参照を逆参照します。 Perlは、必要に応じて内部配列参照を自動的に作成します。
Push
関数は配列を使用するため、これを参照して配列に戻す必要があります。
Push @{$TEST{TEST1}}, "some value";
また、あなたのスタイルは、あなたが strict
プラグマを使用していないと私に思わせます。そのコードを記述するより良い方法は次のとおりです。
#!/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;
私はあなたが望むと思います:
%TEST;
$TEST{TEST1}[0] = "some value"
Push @{ $TEST{TEST1} }, "some other value"
これで、$ TEST {TEST1}は["some value", "some other value"]
と同等になるはずです。