2

出于某种原因,我的 if 语句没有按照我希望的方式工作。

use strict;
use warnings;

my $syl;
my $name = "Chris";
print "Enter my name\n";
$syl = <>;
if ($syl eq $name)
{
  print "You entered my name!\n";
}
else
{
  print "That's not my name!\n";
}

看起来它应该适用于我读过的所有教程,但是当我输入“Chris”时,无论是大写、小写、带或不带引号,它总是评估为假。使用严格和使用警告不要告诉我我做错了什么,如果有的话,我能做什么?

4

1 回答 1

8

你需要使用chomp. 当用户键入“enter”时,这会从输入字符串的末尾删除换行符。

$syl = <>;
chomp $syl;
#.... etc...
于 2011-06-11T04:17:18.570 回答