Memoize

BasicWerk   EC Support   Technique   Facebook  

20141128205323_Perl_first_match_in_list

Perl_first_match_in_list

 

 

 
#! /usr/bin/perl
use warnings;
use strict;
use List::Util qw(first);
 
# qr// でプリコンパイルした正規表現リファレンスをハッシュに格納
my %patterns = (
    aaa => qr/aaa/i,
    bbb => qr/bbb/i,
    ccc => qr/ccc/i,
);
 
my $target = "Aaa";
# grep ではなく first を使うことによって、最初にマッチした時点以降の反復処理をスキップ
my ($match) = first { $target =~ $patterns{$_} } keys %patterns;
print "Target: $target, Matched regex: $match\n" if $match;
# -> Target: Aaa, Matched regex: aaa
 

 

 


© Shin Nakamura/BasicWerk 2014