逻辑定义的Perl数组 - 或

时间:2017-01-19 04:42:00

标签: arrays perl

如果给定的数组未定义,我试图分配一个空数组,否则分配给定的数组。但看起来perl数组正在逻辑定义的标量上下文中执行。或者

示例:

@h = 1 .. 5;
@a = @h // ();
@b = defined @h ? @h : ();

print @a; #5  
print @b; #12345

是否有解决方法,所以我可以像代码的第二行一样以类似的方式进行操作?

1 个答案:

答案 0 :(得分:2)

只有标量值可以是undef,测试数组的定义是没有意义的。如果您要将@a设置为@h,如果@h非空,则将其设置为空列表,然后您只需编写@a = @h