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 |