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

刚刚开始学习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");
}

解决方法

当我读到你的问题时,我认为你的字符串与等于的数值有问题.考虑以下情况:

#!/usr/bin/env perl

use strict;
use warnings;

print("What is the meaning of life,the universe and everything? ");
chomp(my $response = <STDIN>);

if ( $response == 42) {
#if ( 42 ~~ $response ) {
    print "correct answer\n";
} else {
    print "Wrong answer\n" ;
}

尝试两个不同的if语句.回答像家人一样的好事,看看会发生什么. ~~是智能匹配运算符,它帮助了Perl中的一些问题.阅读更多关于它here(在“详细的智能匹配”下).另请注意chomp运算符的内联使用.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...