我试图创建许多内容相同的哈希引用。使用 x
运算符会得到相同引用的副本。如何获得不同的引用?
我需要不同的引用,以便稍后可以独立更新它们。
我的代码:
use strict;
use warnings;
use autodie;
use feature qw(say);
use open ':std', ':encoding(UTF-8)';
my %UNIT_COUNT = (
numsys => 6,
alg => 20,
geo => 15,
cogeo => 6,
trig => 12,
mensur => 10,
statprob => 11
);
my $out = [
map {
( { unit => $_, weight => 1 } ) x
( $UNIT_COUNT{$_} )
} keys %UNIT_COUNT
];
use Data::Dumper;
print Dumper($out);
%UNIT_COUNT
)的副本,还是您正在尝试从中构建不同的数据? - zdim{ unit => $_, weight => 1 } ) x ( $UNIT_COUNT{$_} )
这一部分,它会产生不同的 hashrefs。我想为%UNIT_COUNT
中的每个键$_
创建一个包含$UNIT_COUNT{$_}
个 hashrefs 的列表。hashrefs 的内容取决于键,但除此之外是相同的。@toolic 给出的答案符合我的要求。我想知道是否有更简洁/清晰的方法来实现这一点。 - pii_ke