アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記コードは、同じ意味だと思っていたのですが、
実行すると違った結果が表示されます。
何故でしょうか?

my $string = 'A-test';
unless($string =~ m/-Hoge/){print '=~>',$string;}
if($string != m/-Hoge/){print '!=>',$string;}

A 回答 (2件)

違います。


unless($string =~ m/-Hoge/){print '=~>',$string;}
 ↑ 変数 $stringに文字列 「-Hoge」 が無かったら { }内を実行する
if($string != m/-Hoge/){print '!=>',$string;}
 ↑ 変数 $stringの値と $_=~/-Hoge/マッチング結果(真/偽)が不等だったら{ }内を実行する。(この場合、マッチング結果は「偽」で式が成立しない)
したがって、
【結果】 =~>A-test
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
そうですね。勘違いしていました。

お礼日時:2009/06/24 22:47

if($string != m/-Hoge/){print '!=>',$string;}


でなくて
if($string !~ m/-Hoge/){print '!=>',$string;}
だと思います。
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
あ!そうですね。
そうでした!

お礼日時:2009/06/24 22:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!