• 締切済み

複数の単語のいずれも含まない場合の条件文

複数の単語を設定して、そのどれも含んでいない場合にエラーを 出したいのですが(例えば「one」「two」「three」という単語の場合) ○の部分をどのように記述すればいいでしょうか。一行で書けますか? if ($test =!~ /○/i) { &error("エラー"); }

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

素直に #1 でいいと思うけど, ひねりたいなら grep { $test =~ /$_/i } qw(one two three) or &error("エラー");

liveevil
質問者

お礼

回答ありがとうございます。 皆さんの意見を参考に変えてみたら機能しました。 なぜか書き込んだのに反映されてなかったので返信が遅れました。すみません。

回答No.3

前の回答は質問の意味を間違えていました。 すみません。 ただ・・・ phone なんかがoneにマッチして良いのか悪いのかで、処理が変わるんじゃ・・・

回答No.2

my %word; $word{one}=''; $word{two}=''; $word{three}=''; if not exists $word{$test}{&error('エラー')} では? 単語増やすの楽ですよ・・・

  • darter
  • ベストアンサー率48% (12/25)
回答No.1

if ($test !~ /one|two|three/i) { &error("エラー"); } でいいと思います。 あと、「一致しない」場合は、 =!~ ではなく !~ ですね。

関連するQ&A