perl – 如何创建在不同标量上下文中返回不同值的对象?

我想在字符串上下文和数字上下文中返回不同的值,如 $!.我知道我可以通过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的任何地方都应该是可用的.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...