$h->{first_name} = $h->{name}; delete $h->{name}; #### my $h = { mm => 'July', yyyy => '1975', dd => '31', name => 'Milo', last_name => 'Manara', }; my %replacement_for = ( mm => 'month', yyyy => 'year', dd => 'day', name => 'first_name', ); my @array_from_hash = %$h; my $x = 0; for ( @array_from_hash ) { if ( $x++ % 2 == 0 && exists $replacement_for{$_} ) { $_ = $replacement_for{$_}; } } my $h2 = { @array_from_hash }; print Dumper $h; print Dumper $h2; __END__ $VAR1 = { 'mm' => 'July', 'name' => 'Milo', 'dd' => '31', 'last_name' => 'Manara', 'yyyy' => '1975' }; $VAR1 = { 'month' => 'July', 'day' => '31', 'year' => '1975', 'last_name' => 'Manara', 'first_name' => 'Milo' };