为什么eq不能使用我的字符串输入?

Mik*_*ley 3 perl if-statement flow

刚刚开始学习Perl,即学习程序流程 - 评估字符串和数字以及使用适当的运算符之间的主要差异.简单的脚本,我在这里让我发疯,因为它是一个超级简单的if if语句,应该在"mike"进入运行并且不起作用.它输出else语句.请帮忙

#!C:\strawberry\perl\bin\perl.exe

use strict;
#use warnings;
#use diagnostics;

print("What is your name please?");
$userName = <STDIN>;


if($userName eq "mike"){
    print("correct answer");
}
else{
    print("Wrong answer");
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ffe 11

从STDIN获取值后尝试添加对chomp的调用:

$userName = <STDIN>;
chomp($userName);
Run Code Online (Sandbox Code Playgroud)

由于从STDIN读入的值将在末尾具有换行符.内置的chomp()将从字符串的末尾删除换行符.

  • *我*可以想象原因.但这些"尝试<read-made code of code>"答案并不是特别有用.如果你不明白为什么,即使是正确的解决方案仍然是货物崇拜. (2认同)