如果给定的数组未定义,我试图分配一个空数组,否则分配给定的数组。但看起来perl数组正在逻辑定义的标量上下文中执行。或者
示例:
@h = 1 .. 5;
@a = @h // ();
@b = defined @h ? @h : ();
print @a; #5
print @b; #12345
是否有解决方法,所以我可以像代码的第二行一样以类似的方式进行操作?
答案 0 :(得分:2)
只有标量值可以是undef
,测试数组的定义是没有意义的。如果您要将@a
设置为@h
,如果@h
非空,则将其设置为空列表,然后您只需编写@a = @h
。