为什么这会失败?Perl字符串比较

The*_*ged 1 perl

我想要一个简单的你想在我的pl脚本中继续对话.它看起来像这样:

print "continue? (Y/n)\r\n";
$ans = <>;
if("$ans" eq "n"){
    print "$ans";
    exit 0;
}
print "still here";
Run Code Online (Sandbox Code Playgroud)

如果我写了它没有输入if语句,为什么?退出0; 退出程序的正确方法?如果我只是打印$ ans变量,它会输出我输入的n

vah*_*bdi 5

用这个:

chomp $ans;
Run Code Online (Sandbox Code Playgroud)

你应该剥离\n

演示:

print "continue? (Y/n)\r\n";
$ans = <>;
chomp $ans;
if("$ans" eq "n"){
    print "$ans";
    exit 0;
}
print "still here";
Run Code Online (Sandbox Code Playgroud)

  • 什么`chomp`返回*不是*修改过的字符串.见[doc](http://perldoc.perl.org/functions/chomp.html) (5认同)