use Data::Dumper; use strict; my @array; my %array; @array = qw( a b c d ) ; @array{ @array } = ( [ @array ] ) x @array ; print Data::Dumper->Dump([\%array], ["*array"]); __OUTPUT__ %array = ( 'c' => [ 'a', 'b', 'c', 'd' ], 'a' => $array{'c'}, 'b' => $array{'c'}, 'd' => $array{'c'} );