Perl条件不替换标量值

Chr*_*ian 2 perl scalar if-statement

出于某种原因,我的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";
}
Run Code Online (Sandbox Code Playgroud)

看起来它应该适用于我读过的所有教程,但是当我输入"Chris"时,无论是大小写,小写,有或没有引号,它总是评估为false.使用严格和使用警告不告诉我我做错了什么,所以,如果有的话,我可以做什么?

Dav*_*idO 8

你需要使用chomp.当用户输入'enter'时,从输入字符串的末尾剥离换行符.

$syl = <>;
chomp $syl;
#.... etc...
Run Code Online (Sandbox Code Playgroud)