2017-10-25 8 views
-1

こんにちは文字列を持つ@arrayを解析し、"This is bird"文字列が存在するかどうかを確認します。存在する場合、何か他に戻る。私はperlでやっています。配列を解析して、文字列が一致するかどうかを確認してください

私はif($string ~~ @array)を使用しましたが、一致する文字列が存在する場合でも出力はありません。これを使用すると、両方の文字列を比較することはできません。 @arrayには、任意の数の文字列を含めることができます。私はそれを行うことができる他の方法はありますか?あなたは、リスト内の要素を探すためにスマートマッチ演算子(~~)を使用している場合

答えて

2

the syntax is

$string ~~ \@array 

using the smart-match operator is diceyので、それに依存しない、いくつかの選択肢がグレップに

を使用するようにしています
if (grep { $_ eq $string } @array) { ... } 

List::Util::firstまたはList::Util::any

use List::Util 'first'; 
if (first { $_ eq $string } @array) { ... } 

use List::Util 'any'; 
if (any{ $_ eq $string } @array) { ... } 
+0

これはまだ動作しないので、私は私の質問をより明確にしたいです。私が持っている '@配列'には、ファイルから一致する文字列が入っています。私は@array = grep -Fx 'これはbird' file.txt ");これは文字列が存在するかどうかを知るために基本的に行っています。配列に一致する文字列が含まれている場合は、ファイル。 –

+0

もっと理解したい場合は、サンプル入力と出力を含めてください。 – mob

+0

実際、 '$ string ~~ @ array'は問題ありません。 – ikegami

関連する問題