use Data::Dump qw( dump ); my %hash = ( 1 => "Piker", 2 => "Vin", 3 => "Sang" ); my %revhash; $revhash{$hash{$_}} = $_ for (keys(%hash)); print dump( \%hash ), "\n"; print dump( \%revhash ), "\n";