数组 – 如果没有给出命令行参数,如何使用默认数组?

前端之家收集整理的这篇文章主要介绍了数组 – 如果没有给出命令行参数,如何使用默认数组?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果没有给出命令行参数,下面似乎可以正常工作,但是当它们全部得到的时候是提供的参数数量,而不是参数本身.似乎@ARGV被||强制标量.我也试过使用or和//得到类似的结果.这里使用的运算符是什么?
say for @ARGV || qw/one two three/;

解决方法

|| operator根据其所做的性质强加了标量上下文

Binary "or" returns the logical disjunction of the two surrounding expressions. It’s equivalent to || except for the very low precedence.

(强调我的).因此,当它的左侧操作数是一个数组时,它获得数组的长度.

但是,如果该值为0,则仅评估右侧

This means that it short-circuits: the right expression is evaluated only if the left expression is false.

什么是C-Style Logical Or in perlop年的拼写

Scalar or list context propagates down to the right operand if it is evaluated.

所以你得到那个案子的清单.

没有任何运算符可以执行您的陈述所需的内容.最近的可能是

say for (@ARGV ? @ARGV : qw(one two));

但是有更好,更系统的方式来处理@ARGV.

猜你在找的Perl相关文章