use warnings; use strict; use Data::Dump; my %animals = ( cat => [ 1,2,3, ["nested","array"] ] ); my @cat = @{$animals{'cat'}}; push @cat, 4; $cat[1] = 9; $cat[3][0] = 'Nested'; dd \%animals; dd \@cat; __END__ { cat => [1, 2, 3, ["Nested", "array"]] } [1, 9, 3, ["Nested", "array"], 4]