【问题标题】:Perl Conditional not substituting in scalar valuePerl条件不替换标量值
【发布时间】:2011-06-11 04:13:06
【问题描述】:

由于某种原因,我的 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”时,无论是大写、小写、带或不带引号,它的计算结果总是为 false。使用严格和使用警告不会告诉我我做错了什么,如果有的话,我能做什么?

【问题讨论】:

  • 调试时,打印值...print "That ($syl) is not my name; ($name) is my name!\n";。当您在输出中看到意外的换行符时,您就会很清楚出了什么问题。这是用任何语言进行调试的基本技术;当出现问题时,打印错误值(和预期值)。

标签: perl if-statement scalar


【解决方案1】:

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

$syl = <>;
chomp $syl;
#.... etc...

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多