Perl中字符和整数的eq运算符

Perl中字符和整数的eq运算符,perl,Perl,我正在使用Perl编写简单的密码检查程序,我正在比较两个字符串 "abc@123使用eq运算符Perl的“abc”和“abc”将两个字符串视为相等。有没有办法将同时包含字符和数字的字符串与另一个字符串进行比较?启用警告 use warnings; my $x = "abc@123"; print $x; $x是“abc”,您会收到一条警告: Possible unintended interpolation of @123 in string 告诉您已将空数组@123插入字符串 适当引用:

我正在使用Perl编写简单的密码检查程序,我正在比较两个字符串 "abc@123使用eq运算符Perl的“abc”和“abc”将两个字符串视为相等。有没有办法将同时包含字符和数字的字符串与另一个字符串进行比较?

启用警告

use warnings;
my $x = "abc@123";
print $x;
$x
是“abc”,您会收到一条警告:

Possible unintended interpolation of @123 in string
告诉您已将空数组@123插入字符串

适当引用:

my $x = 'abc@123';
if ( $x eq 'abc' ) {
    print "eq";
}
else {
    print "not eq";
}
你得到的不是你所期望的“情商”


正如TLP所说,不使用严格的警告是自找麻烦。

'abc@123“eq'abc'
不是真的。@ikegami我意识到了这一点,这就是为什么我将双引号改为单引号以使语句正确。你应该补充一点,不使用
使用严格;使用警告;
是自找麻烦。这应该是一个标准的t发布“perl”问题时,请注意。