如果我没有改变值,那么[@ {$myArray}]是否相当于Perl中的$myArray?

前端之家收集整理的这篇文章主要介绍了如果我没有改变值,那么[@ {$myArray}]是否相当于Perl中的$myArray?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些Perl代码
{
  key => [@{$myArray}]
}

我想重构一遍:

{
  key => $myArray
}

如果我没有改变key指向的值,那两个语义是否等价?

解决方法

他们的行为方式不同

> @ {$h-> {key}}已更改. (你提到的差异)
> @ $数组已更改.
> $array不能作为数组解除引用(例如$array是一个字符串).
> $array是一个重载@ {}的对象.
> @ $数组的元素很大或很神奇.

第一个片段在创建哈希时创建元素的副本,因此它会更慢,并且它将使用更多内存.数组或元素的任何神奇方面(例如,如果数组是:共享数组,或绑定到Tie :: File的数组)将不会被第二个片段复制.

猜你在找的Perl相关文章