在 perl 中更改多维哈希的第一个键

  • 本文关键字:哈希 第一个 perl perl hash
  • 更新时间 :
  • 英文 :


我在perl中有一个多维哈希,我想更改所选值的第一个键。例如,我有哈希

my %Hash1;
$Hash1{1}{12}=1;
$Hash1{1}{10}=1;
$Hash1{2}{31}=1;
$Hash1{3}{52}=1;
$Hash1{3}{58}=1;
$Hash1{4}{82}=1;
$Hash1{4}{154}=1;

现在我想用值 300 替换第一个键中的值 3。在此之后,我会得到:

$Hash1{1}{12}=1;
$Hash1{1}{10}=1;
$Hash1{2}{31}=1;
$Hash1{300}{52}=1;
$Hash1{300}{58}=1;
$Hash1{4}{82}=1;
$Hash1{4}{154}=1;

我知道我可以通过扫描原始哈希并执行以下操作来创建新的哈希:

my %Hash2;
foreach my $key1 (sort keys %Hash1) {
foreach my $key2 (keys %{ $Hash1{$key1} }) {
if($key1==3){
$Hash2{300}{$key2}=1;
} else {
$Hash2{$key1}{$key2}=1;
}
}
}

但是有没有更快的方法?

$Hash1{300} = $Hash1{3};
delete $Hash1{3};

最新更新