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

Posted

技术标签:

【中文标题】Perl 中用于字符和整数的 eq 运算符【英文标题】:eq operator in Perl for both characters and integers 【发布时间】:2014-12-10 15:03:38 【问题描述】:

我正在使用 Perl 开发简单的密码检查程序,我正在比较两个字符串 "abc@123" 和 ""abc" 使用 eq 运算符 Perl 将两个字符串视为相等。有什么方法可以将同时包含字符和数字的字符串与另一个字符串进行比较?

【问题讨论】:

'abc@123' eq 'abc'为真。 @ikegami 我意识到了这一点,这就是为什么我将双引号改为单引号以使语句正确。 【参考方案1】:

启用警告!

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";

如您所料,您会得到“not eq”。

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

【讨论】:

你应该补充一点,不使用use strict; use warnings;是自找麻烦。 在发布“perl”问题时,这应该是一个标准的事情。

以上是关于Perl 中用于字符和整数的 eq 运算符的主要内容,如果未能解决你的问题,请参考以下文章

3perl进阶

Perl语言入门--2--perl的运算符

Perl6 字符串强制运算符 ~ 不喜欢前导零

条件判断

Python入门-2编程基本概念:12同一运算符-整数缓存问题

perl 第11弹 运算符大汇总