use strict; #for better practice use warnings;#same as above my @test = ( qw / bing bong bang / ); print '['.$test[2].'] ['.$test[1].'] ['.$test[0]."]\n"; my %bits;#explicitly declare your variables $bits{'one'}= \@test;#assign the array ref, not the flattened array itself. my @new = @{$bits{'one'}};#now deref it, so you get the flattened array back. print '['.$new[2].'] ['.$new[1].'] ['.$new[0]."]\n"; #### use strict; use warnings; my @test = ( qw / bing bong bang / ); print '['.$test[2].'] ['.$test[1].'] ['.$test[0]."]\n"; my %bits; $bits{'one'}= \@test; my $new = $bits{'one'}; #new holds the array ref, not a copy of the entire array print '['.$new->[2].'] ['.$new->[1].'] ['.$new->[0]."]\n";#to get elements from array ref, use -> operator