#!/usr/bin/perl -w use strict; use warnings; use Data::Dumper; # original hash my $h = { mm => 'July', yyyy => '1975', dd => '31', name => 'Milo', last_name => 'Manara', }; print Dumper($h); my $x = { mm=>'month', dd=>'day', yyyy=>'year' }; my $t; @$t{map{$$x{$_}||$_}keys %$h) = values %$h; print Dumper($t);