2016-07-14 5 views
0

以下は、実際にperl配列のパターンを見つけるコードです。一度にperl配列内のgrep複数パターン

my $isAvailable = grep { $_->[0] eq '12345' } {$filteredTableEntriesMap{$REPORT_PART1}} ; 

しかし、私は一度に2つのインデックスに2つのパターンを検索したい

my $isWiuAvailable = grep { $_->[0] eq '12345' }  @{$filteredTableEntriesMap{$REPORT_PART1}} ; 
my $isBsAvailable = grep { $_->[1] eq '6789' } @{$filteredTableEntriesMap{$REPORT_PART1}} ; 

これは、マップが

$VAR1 = { 
     'REPORT PART2' => [], 
     'REPORT PART1' => [ 
           [ 
           '12345', 
           '6789',       
           ], 
           [ 
           '343435', 
           '315', 
           ], 
           [ 
           '00103', 
           '000315', 

           ], 
         ] 

を表していると私は一致したいと思うかでありますインデックス1とインデックス2のこれら2つのエントリを持つ配列

ありがとう

答えて

2

2つの条件を1つの式に組み合わせることができます。 {}内部

my @found = grep { $_->[0] eq '12345' && $_->[1] eq '6789' } 
    @{$filteredTableEntriesMap{$REPORT_PART1}}; 

ものgrepための基本的サブルーチンです。 $_@foundのままにしたい場合は、真の値を返す限り、そこに欲しいほど多くのことを行うことができます。

関連する問題