此行为不是Math::BigInt特有的,但是以下代码在最后一行中断。
use strict;
use warnings;
use Math::BigInt;
my $a = Math::BigInt->bone;
my $b = Math::BigInt->bone;
print ($a+$b)->bfac;
但是,此代码可以正常工作:
use strict;
use warnings;
use Math::BigInt;
my $a = Math::BigInt->bone;
my $b = Math::BigInt->bone;
print scalar($a+$b)->bfac;
我的问题是……为什么标量上下文没有自动施加在“->”的左参数上? AFAIK,“->”仅适用于标量和(特殊情况下)适用于typeglob。
最佳答案
您需要另外一套paren,
print (($a+$b)->bfac);
正如您的代码被解释为
(print ($a+$b))->bfac;
和警告也给了你
print (...) interpreted as function ..
关于perl - 方法调用不提供标量上下文...似乎很奇怪,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26010370/