簡體   English   中英

一次在perl數組中使用grep多個模式

[英]grep multiple pattern in perl array at a time

以下是實際上在perl數組中找到模式的代碼。

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

但是我想一次在兩個索引中搜索兩個模式

 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中具有這兩個條目的數組

謝謝

您可以將兩個條件組合為一個表達式。

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

{}用於grep內容基本上是一個子例程。 如果您想將$_保留在@found結果中,則只要返回一個真值,就可以在其中執行@found

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM