除非在perl中定义,否则为数组赋值

除非在perl中定义,否则为数组赋值,perl,Perl,让我们有一个代码: 使用5.014; 使用警告; my$def='默认值'; #这是有效的,。 #除非这里有一些论点 #将值$def指定给元素0 我的(@arr)=(@ARGV); 推送@arr,$def,除非@arr; 说“args:@arr”; #这同样有效 #标量-ARGV[0]也一样 my$a1=$ARGV[0]/$def; 说“arg1:$a1”; 如果此处没有@ARGV,是否存在为数组分配默认值的缩短方法 #this not works #my(@arr) = (@ARGV) //

让我们有一个代码:

使用5.014;
使用警告;
my$def='默认值';
#这是有效的,。
#除非这里有一些论点
#将值$def指定给元素0
我的(@arr)=(@ARGV);
推送@arr,$def,除非@arr;
说“args:@arr”;
#这同样有效
#标量-ARGV[0]也一样
my$a1=$ARGV[0]/$def;
说“arg1:$a1”;
如果此处没有
@ARGV
,是否存在为数组分配默认值的缩短方法

#this not works
#my(@arr) = (@ARGV) // ('def');
除非定义,否则为数组赋值

没有定义或未定义的数组

若要在数组为空时将其赋值


如果此处没有
@ARGV
,是否存在为数组分配默认值的缩短方法

#this not works
#my(@arr) = (@ARGV) // ('def');
@ARGV
始终存在

要将一个数组复制到另一个数组中,如果源数组为空,则使用备用值,可以使用以下命令:

my @arr = @ARGV ? @ARGV : 'def';
除非定义,否则为数组赋值

没有定义或未定义的数组

若要在数组为空时将其赋值


如果此处没有
@ARGV
,是否存在为数组分配默认值的缩短方法

#this not works
#my(@arr) = (@ARGV) // ('def');
@ARGV
始终存在

要将一个数组复制到另一个数组中,如果源数组为空,则使用备用值,可以使用以下命令:

my @arr = @ARGV ? @ARGV : 'def';
简单的

my @arr = @ARGV ? @ARGV : ('def');
如果确实只有一个值需要赋值,则可以省略括号

最后一个示例不起作用,因为
/
| |
&&&
评估其左侧的定义性或真实性,所以它们在左侧强制使用标量上下文(将数组强制为其元素计数)。请参阅。

简单的

my @arr = @ARGV ? @ARGV : ('def');
如果确实只有一个值需要赋值,则可以省略括号

最后一个示例不起作用,因为
/
| |
&&&
评估其左侧的定义性或真实性,所以它们在左侧强制使用标量上下文(将数组强制为其元素计数)。看