代码之家  ›  专栏  ›  技术社区  ›  Don

如何创建Perl哈希引用的浅拷贝?

  •  11
  • Don  · 技术社区  · 15 年前

    如何创建浅层副本?

    1 回复  |  直到 15 年前
        1
  •  31
  •   brian d foy    13 年前

    复制一下:

     my %copy = %$hash;
    

     my $copy = { %$hash };
    

    对于那些想知道浅拷贝的人:这种赋值只会为顶级键生成新值。作为引用的任何值在新哈希中仍将是相同的引用。也就是说,您可以在不更改原始哈希的情况下替换新哈希中的值。如果只更改值,例如将新项推送到匿名数组值上,则两个哈希都会得到更改,因为它们共享相同的引用。因此,浅拷贝通常不是您想要的。