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 - 根据百分比水平拆分 2D numpy 数组

perl - 为什么我使用 Perl 的 WWW::Mechanize 得到乱码内容?

linux - 在 Perl 5.16 上安装 PAR::Packer 模块

haskell - 常见的 Haskell 运算符有可发音的名称吗?

c++ - 是否可以在不必派生自 safe_bool 类的情况下实现 safe bool 习语?

python - Google应用程序引擎本地主机服务器错误python

python - Raspberry PI 3、串行端口和奇怪的响应

python - 找到具有属性的许多节点之一的最短路径

xml - 需要在 Linux env 中用 Perl 脚本修改几个 XML 文件

c++ - 无符号长按位运算符?