私は自分の名前を入力してあってるかあってないかと言うことを聞いてくるスクリプトをつくりたいのですが

print "あなたのお名前を入力してください:"; chomp($name = <STDIN>);
do
{
print "あなたのお名前は",$name,"さんですね?\n";
print "YES:0NO:1\n"; $logic = <STDIN>; print "\n"; chomp($logic);
if ($logic == 0)
{
print "やはりそうでしたか";
}
elsif ($logic == 1)
{
print "嘘はつかないでください\n";
}
else
{
print"YESかNOかで答えてください";
}
}
until($logic == 0);

と作りました。しかし0か1かを入力するところを0,1以外で入力するとelse構文のないようが表示されず
終了してしまいます。
なぜでしょうか?