#!/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;