perl中的wantarray()函数

用法

wantarray

说明

根据函数被赋值的类型(是列表还是标量),返回不同的值

  • 当不对定义的函数的返回值赋值时,wantarray返回undef;
  • 当把定义的函数的返回值进行赋值,赋值给标量的时候,wantarray返回空字符串(空字串与undef不同);
  • 当把定义的函数的返回值进行赋值,赋值给列表的时候,wantarray返回1;

例子

其实文字表述不方便,而且直接看该命令的名字wantarray,就是“想要?想要列表”?有点不好理解,那么直接上例子。

#!perl 

# 定义函数
sub wantarray_example{
    # defined wantarray 判断函数的返回值是否进行赋值了
    if(defined wantarray){
        print "assignment!\n";
    }else{
        print "no assignment!\n";
    }

    # wantarray 判断函数的返回值赋值给变量的类型,如果是列表,则返回1,否则返回undef
    if(wantarray){
        print "It is List!\n";
        return qw/1 2 3 4/;
    }else{
        print "It is Scalar!\n";
        return "A";
    }
}

# 调用函数

# 不对函数的返回值进行赋值
print "======example1======\n";
wantarray_example();

# 对函数的返回值进行赋值,但是赋值给一个列表
print "======example2======\n";
my @list = wantarray_example();

# 对函数的返回值进行赋值,但是赋值给一个标量
print "======example3======\n";
my $scalar = wantarray_example();

# 将存贮在变量中的值打印出来
print "======print value======\n";
print "LIST  : @list\n";
print "SCALAR: $scalar\n";

最后运行结果为

======example1======

no assignment!

It is Scalar!

======example2======

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值