2010-12-31 8 views
0

私の以前の質問と同様ですが、今度は整数リスト内の整数が配列内にあるかどうかを知りたいと思います。Perl:整数リストの整数が配列内にあるかどうかを確認する方法

例えば、私が持っている場合:整数値80または77または99が配列である場合

@int_array = (7,101,80,22,42); 

にはどうすれば確認できますか?リスト内の各整数に対して個別のスマートマッチを行うよりも良い方法はありますか?私はPerl 5.10.1を使用しています

答えて

2
#!/usr/bin/env perl 
use warnings; 
use 5.012; 

my @array = (7,101,80,22,42); 
my @items = (77,81,99); 
my $it = join '|', @items; 
my $re = qr/^(?:$it)\z/; 
say $re ~~ @array ? 'OK' : 'Not OK'; 
+1

私はTMTOWTDIしかし親愛なる神、ewwwwを知っています。 – ijw

1

あなたはあなたがすぐに見つけることができる何かを見つけるたびに、リスト全体を検索する代わりに、配列をハッシュにすることができます。

0

最も簡単な方法は、int配列をキーと値であるハッシュに変換することです。そして、あなたはif (exists($intHash{$iVal))

0

も ​​'グレップ' メソッド

があります/ $ num /、@アレイ){print "yerp!\ n"; }

+0

それ以上: 'if(grep {$ _ == $ num} @array){print" yurp!\ n "; } ' – reinierpost

関連する問題