#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %hash = (key1 => { subkey1 => [ qw(a number of elements in an array) ], }, key2 => "value2"); my %hash2 = %hash; $hash2{key1}->{subkey1} = [ qw(other elements in an array) ]; print Dumper(\%hash); print Dumper(\%hash2);