在下面的代码中,BigInt对象和perl标量之间进行了比较。尽管它给出正确的输出,但想知道 a)混合两者是否可以。 b)标量是否被提升为BigInt
use Math::BigInt;
my $a = 11;
my $bInt = Math::BigInt->new("0xa");
print "a = $a";
print "bInt = $bInt\n";
if ($bInt < $a) {
print "LESS\n";
} else {
print "EQUAL OR GREATER\n";
}
Output:
a = 11
bInt = 10
LESS
答案 0 :(得分:2)
是的,Math :: BigInt对象重载比较运算符,这意味着在比较中使用它们时,重载将正确处理它,并且不会更改本机值。这里还有更多详细信息:https://perldoc.pl/Math::BigInt#Mixing-different-object-types,当然,overload文档也有很多细节。