配列のハッシュを引数として取るサブルーチンを作成しようとしています。しかし、配列の1つを取得しようとすると、配列自体の代わりに配列のサイズを取得するように見えます。perlのサブルーチンに渡されたハッシュから配列を取り出す方法
my(%hash) = ();
$hash{"aaa"} = ["blue", 1];
_subfoo("test", %hash);
sub _subfoo {
my($test ,%aa) = @_;
foreach my $name (keys %aa) {
my @array = @{$aa{$name}};
print $name. " is ". @array ."\n";
}
}
これは、期待通りに(青、1)の代わりに2を返します。サブルーチンでハッシュの配列を処理する他の方法はありますか?
これは、スタックオーバーフロー、初回ポスター、プログラミング初心者ではあまりにも単純すぎると謝罪します。あなたは右ここスカラーコンテキストにあなたの@array
配列を入れている
コードのインデントが非常に乱雑です。 vimなどの自動インデント付きの適切なテキストエディタを使用する必要があります。 – TLP