あなたはおそらく(連想配列のためのPerlの名前()キーとして文字列を含むコレクションです%
印章、で指定された)ハッシュをしたい:
$test{key}
はあなたに対応する配列の参照を提供します。もしそうなら、他の4つの答えの一つがあなたを助けます。 (あなたのデータは、同じ名前を持つ複数のキーを持つことができる場合、またはあなたは、データの順序を保持する必要がある場合)あなたは、実際にいくつかの理由のために配列を望んでいた場合は、次のいずれかの方法を使用することができます。
my @test = (
mobilephone => [qw(sony htc)],
pc' => [qw(dell apple)]
);
for (0 .. $#test/2) {
if ($test[$_*2] eq 'mobilephone') {
print "$test[$_*2]: @{$test[$_*2+1]}\n"
}
}
モジュール使用:
use List::Gen 'every';
for (every 2 => @test) {
if ($$_[0] eq 'mobilephone') {
print "$$_[0]: @{$$_[1]}\n"
}
}
別の方法:
のforループと
use List::Gen 'by';
(by 2 => @test)
->grep(sub {$$_[0] eq 'mobilephone'})
->map(sub {"$$_[0]: @{$$_[1]}"})
->say;
各ブロックプリントmobilephone: sony htc
免責事項:私はList::Genを書いた方法で
。
おそらくハッシュがこれに適していますか? http://www.tizag.com/perlT/perlhashes.php – itdoesntwork
tiztag Perlチュートリアルにリンクしないでください。それはむしろ古く厄介なコードです。代わりにhttp:// szabgabでhttp://learn.perl.orgまたはGaborの急成長チュートリアルを試してみてください。com/perl_tutorial.html。 –