• ベストアンサー

配列内の要素をパターンマッチする

@inputと$ansがあります。プログラムを実行するなかで@inputに要素を加えて行きます。実行の条件により要素数はことなります。 $ansというデータを与えられたときに$ansが@input内に存在しなければ次の処理に行くといった感じのプログラムを作ろうとしています。 私は@input内の要素と$ansをパターンマッチさせてマッチしなければ次に行くっといった感じのプログラムにしたいのですが配列内の要素をパターンマッチする方法がイマイチ分りません。 どなたか教えて下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

以下のようにしてください。 foreeachで繰り返します。 ---------------------------- @input = ("abc","efg","abx","efx"); $ans = "ef"; foreach $data (@input){ if ($data =~ /$ans/){ $flg = 1; $match = $data; last; } } if ($flg == 1){ printf("$match がマッチしました\n"); }else{ printf("マッチしません\n"); } この例では、 efg がマッチしました と表示されます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

過去に似たような質問がありました

参考URL:
http://okwave.jp/kotaeru.php3?qid=1304108

関連するQ&A