Perl比较运算符输出

bil*_*au1 5 perl

我不确定比较的输出是什么.例如,考虑一下

$rr = 1>2;
$qq = 2>1;

print $rr; #nothing printed
print $qq; #1 printed
Run Code Online (Sandbox Code Playgroud)

$rr空字符串?这种行为是否记录在某处?或者如何确定?

我在Schwartz等人的Learning Perl中寻找答案,但无法立即解决问题.

yst*_*sth 4

http://perldoc.perl.org/perlop.html#Relational-Operators

返回 true 或 false 的 Perl 运算符通常返回可以安全地用作数字的值。例如,本节中的关系运算符和下一节中的相等运算符返回 1(表示 true)和定义的空字符串的特殊版本 "" ,它算作零,但不会出现有关不正确数字转换的警告,只是正如“0但真实”一样。

所以它返回的是字符串上下文中的空字符串,以及数字上下文中的 0。

  • @bilodeau1,比较 `perl -we'my $x = "" + 0;'` 和 `perl -we'my $x = (1<0) + 0;'` 你会发现它不仅仅是一个空的细绳。 (2认同)