私の以前の質問と同様ですが、今度は整数リスト内の整数が配列内にあるかどうかを知りたいと思います。Perl:整数リストの整数が配列内にあるかどうかを確認する方法
例えば、私が持っている場合:整数値80または77または99が配列である場合
@int_array = (7,101,80,22,42);
にはどうすれば確認できますか?リスト内の各整数に対して個別のスマートマッチを行うよりも良い方法はありますか?私はPerl 5.10.1を使用しています
私の以前の質問と同様ですが、今度は整数リスト内の整数が配列内にあるかどうかを知りたいと思います。Perl:整数リストの整数が配列内にあるかどうかを確認する方法
例えば、私が持っている場合:整数値80または77または99が配列である場合
@int_array = (7,101,80,22,42);
にはどうすれば確認できますか?リスト内の各整数に対して個別のスマートマッチを行うよりも良い方法はありますか?私はPerl 5.10.1を使用しています
#!/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';
あなたはあなたがすぐに見つけることができる何かを見つけるたびに、リスト全体を検索する代わりに、配列をハッシュにすることができます。
最も簡単な方法は、int配列をキーと値であるハッシュに変換することです。そして、あなたはif (exists($intHash{$iVal))
を直接調べることができ、私はここに最善の答えがあると思う:(grepの場合
perldoc -q "How can I tell whether a certain element is contained in a list or array?"
も 'グレップ' メソッド
があります/ $ num /、@アレイ){print "yerp!\ n"; }
それ以上: 'if(grep {$ _ == $ num} @array){print" yurp!\ n "; } ' – reinierpost
私はTMTOWTDIしかし親愛なる神、ewwwwを知っています。 – ijw