揮発性のメモ2

http://d.hatena.ne.jp/iww/

perlで、真偽値の戻り値

perlで、あらかじめ判定しておいた真偽値を変数に入れておいて
あとでそれをif文とかで参照するのってどうやるのが一般的なんだろう

my %hoge;
$hoge{a} = 1;
my $boola = exists $hoge{a};  # 真
my $boolb = exists $hoge{b};  # 偽

print("'$boola'\n");  # '1'
print("'$boolb'\n");  # ''

if($boola){  # ←なんかIDEが警告 Ambiguous condition を出してくる
    print "HELLO\n";
}
if(!!$boola){  # ←警告は出ないけど、綺麗な手法では無いと思う
    print "WORLD\n";
}

真偽値が返る関数の戻り値って「1または0」じゃなくて「1また空文字列」になってるけど、そういうもんなのか? それとも環境依存?
戻り値の真偽値をif文で判定するときに警告が出ない政治的に正しい方法はなんだ?