• ベストアンサー

TRUE、FALSEと言う文字で、1、0を表したいのですが・・・

Perlで、「空文字列(""), ゼロ(0), ゼロを示す文字列("0")の値は偽として、それ以外は真」との決まりはあるようですが、どうもコードを書いていてわかりにくいので、TRUE、FALSEと言う文字で、1、0を表したいのですが、何か良い方法はありますか??? $TRUE=1; $FALSE=0; 以外でお願いします。

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

  • ベストアンサー
回答No.1

Perlのやり方に慣れた方がいいと思うけど。 constantモジュール使えばできますが。 use constant TRUE => 1; use constant FALSE => 0; print TRUE;

goonejp
質問者

お礼

ありがとう御座います。 なるほど、そういう手があったのですね! やはり、いろいろな人に聞くと本当に勉強になります。 今後もよろしくお願い致します。

その他の回答 (1)

noname#25358
noname#25358
回答No.2

 ちなみに、英数字のみで構成された文字列は、"" で囲っていなくても文字列として認識されます。  なので、   if ( getError() eq TRUE ) { exit; }   sub getError {     .....     .....     return TRUE;   }  このようなコードの場合、 TRUE の部分は "TRUE" というふうに、"" で囲った場合と同じように扱われます。  まぁ、あんましスマートじゃないですけど、参考になれば幸いです。  

goonejp
質問者

お礼

この if (&getError() eq TRUE) {exit;} sub getError {    return TRUE; } の書き方も結構わかりやすく、参考になりましたが、 なるほど、それで、$in{PATH}とかは、$in{"PATH"}と書かなくてもいいわけですね…。 初めて、それが理解できました。 関数の頭の&の有無も多分、何か、薀蓄があるのでしょう…。 幸いどころか、非常に参考になりました。 また、よろしくお願い致します。