perl:将一个数组复制到另一个(多维)

perl:将一个数组复制到另一个(多维),perl,loops,Perl,Loops,我有一个代码,用于使用for循环将一个数组的几个元素复制到另一个数组,如下所示 for $count_val (0..($TOTAL_CNT_VAL-1)) { $me->{arr1}[$count_val]{cpu} = $me->{arr2}[$count_val]; } 是否有任何方法可以使用类似于“push”或类似的单行命令来实现同样的事情?postfixfor更简洁一些 $me->{arr1}[$_]{cpu} = $me->{arr2}[$_

我有一个代码,用于使用for循环将一个数组的几个元素复制到另一个数组,如下所示

for $count_val (0..($TOTAL_CNT_VAL-1)) {
      $me->{arr1}[$count_val]{cpu} = $me->{arr2}[$count_val];  
}

是否有任何方法可以使用类似于“push”或类似的单行命令来实现同样的事情?

postfix
for
更简洁一些

$me->{arr1}[$_]{cpu} = $me->{arr2}[$_] for 0..$TOTAL_CNT_VAL-1;

不可以。您可以编写一个可以执行任何操作的sub,但由于索引后有
->{cpu}
,因此没有明确的快捷方式。除非
$me->{arr1}
以前未定义,也就是说。然后您可以使用
$me->{arr1}=[map{+{cpu=>$}}@{$me->{arr2}]@ikegami谢谢你的回答,你能不能把它作为答案贴出来,这样我就可以标记它。
@me->
是错误的
@me
是数组,不是引用。
use 5.18.2;
use strict ;
use warnings ;
use Data::Dumper;
$me->{arr1}[$_]{cpu} = @me->{arr2}[$_][0..$TOTAL_CNT_VAL-1];