Perl字符串比较不起作用

时间:2014-03-27 18:03:42

标签: perl

以下是我的Perl计划:

my $var1='perfp2u1@vanlync2k13.com';
my $var2='PerfP2U1@vanlync2k13.com';
if($var1 eq $var2){
    print "match";
}
else{
    print "no match";
}

输出是: no match

我不知道为什么程序不能正常工作????? 我期望输出"匹配",用于上述程序。

以下是我的straberry perl版本详细信息(操作系统:Windows 7)。

D:>perl -version
This is perl 5, version 16, subversion 2 (v5.16.2) built for MSWin32-x64-multi-t
hread

Copyright 1987-2012, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

2 个答案:

答案 0 :(得分:1)

如果您想要不区分大小写的匹配,请使用lc

my $var1 = 'perfp2u1@vanlync2k13.com';
my $var2 = 'PerfP2U1@vanlync2k13.com';

if(lc $var1 eq lc $var2){
    print "match";
} else{
    print "no match";
}

答案 1 :(得分:1)

Perl eq运算符区分大小写,我很惊讶您认为它应该有不同的行为。

要进行不区分大小写的比较,您可以将两个字符串转换为小写(或大写 - 只要两者都以相同的方式进行修改,无关紧要)比较。

喜欢这个

my $var1 = 'perfp2u1@vanlync2k13.com';
my $var2 = 'PerfP2U1@vanlync2k13.com';

if (lc $var1 eq lc $var2){
    print 'match';
}
else {
    print 'no match';
}

<强>输出

match