Alternatively clone the whole thing.
#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=1023759 use warnings; my @data = ( {unit => 'S', value => 50, }, {unit => 'T', value => 60, }, {unit => 'Q', value => 70, }, ); use Data::Dump 'dd'; dd 'before block', \@data; LOCAL_BLOCK: { use Storable qw( dclone ); my @data = @{ dclone(\@data) }; $_->{unit} = 'S' for @data; use Data::Dump 'dd'; dd 'using dclone in block', \@data; } use Data::Dump 'dd'; dd 'after block', \@data;
Outputs:
( "before block", [ { unit => "S", value => 50 }, { unit => "T", value => 60 }, { unit => "Q", value => 70 }, ], ) ( "using dclone in block", [ { unit => "S", value => 50 }, { unit => "S", value => 60 }, { unit => "S", value => 70 }, ], ) ( "after block", [ { unit => "S", value => 50 }, { unit => "T", value => 60 }, { unit => "Q", value => 70 }, ], )
In reply to Re: Localizing hash keys in an AoH
by tybalt89
in thread Localizing hash keys in an AoH
by kennethk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |