• ベストアンサー

$x=''とした場合と$x=0とした場合で

$xにどちらが設定されているか判別する手段はあるのでしょうか? 有るとすればどうすればいいのでしょうか?

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

単純に if($x eq '0') で大丈夫じゃないでしょうか? $x = 0; if($x eq '0') { print "0を設定\n"; } elsif(! $x and defined $x) { print "'' を設定\n"; } elsif($x) { print "$x を設定\n"; } else { print "\$x は未定義\n"; }

guuman
質問者

お礼

$x=''; if($x eq '') { print "x is blank\n"; } if($x eq '0') { print "x is 0\n"; } と $x=0; if($x eq '') { print "x is blank\n"; } if($x eq '0') { print "x is 0\n"; } でチェックしました

guuman
質問者

補足

ありがとうございます 最初に0であるか調べるのはもっとも危険ですね 最初に'0'であるか調べるべきですね ''であるか調べるのも手ですね

その他の回答 (1)

  • t140
  • ベストアンサー率39% (59/150)
回答No.1

if ($x eq ''){ } elsif ($x eq '0'){ }

guuman
質問者

お礼

ありがとうございます $x=''; if($x eq '') { print "x is blank\n"; } if($x==0) { print "x is 0\n"; } の結果は x is blank x is 0 となります 最初に''をチェックして次に0をチェックするべきでね

関連するQ&A

専門家に質問してみよう