我想在字符串上下文和数字上下文中返回不同的值,如
$!
.我知道我可以通过wantarray找出我是否在列表或标量上下文中,但是在纯Perl中是否有任何方法来确定我所处的标量上下文?我假设在XS中也有答案,如果在纯Perl中没有办法,我愿意接受这个答案.
解决方法
查看Scalar :: Util模块,特别是dualvar()函数:
use Scalar::Util qw(dualvar); my $scalar = dualvar 10,"Hello"; my $twelve = $scalar + 2; # $twelve = 12 my $greeting = $scalar . " world"; # $greeting = "Hello world"
Scalar :: Util是核心发行版的一部分,在你拥有Perl的任何地方都应该是可用的.