python - 为什么我们在 Perl 中需要两个相等运算符 ("=="和 "eq")?

标签 python perl operators

<分区>

在 Python 中,我可以使用“==”来比较字符串或数字。但是在 Perl 中有“==”和“eq”。将“==”与字符串一起使用会导致错误。为什么有两个运算符?总是使用“eq”安全吗?

最佳答案

Perl 的类型系统与 Python 不同。在 Python 中,字符串和数字是不同的类型。 Perl 只有标量。

为了区分标量的字符串解释和数字解释,使用了两组比较运算符。

例如

my $x = "foo";
my $y = 0;

$x == $y; # true, but warning
$x eq $y; # false

my $x = "1.0";
my $y = 1;

$x == $y; # true
$x eq $y; # false

关于python - 为什么我们在 Perl 中需要两个相等运算符 ("=="和 "eq")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213570/

相关文章:

python - 如何创建只读文本 ctrl 但支持复制粘贴事件

python - 基于值和 ASCII 排序的前 n 个结果

html - 如何在 UI 上正确显示阿拉伯语或西类牙语 Mojibake 字符

java - “===” 等效于 Java

python - Unicode解码错误: 'ascii' codec can't decode byte 0xc3 in position 8: ordinal not in range(128)

python 2.6-有效地删除和计算字典列表中的重复项

perl - 替换文本文件中的某些字符串会将剩余文本移至下一行

perl - 当 "Can' t 通过包 y 定位对象方法 x 时打印堆栈跟踪"(Perl)

c++ - 关于 OR ( || ) 运算符和 return 语句

c# - 为什么编译器评估余数 MinValue % -1 与运行时不同?