in reply to Translate or morph hash keys to different names
For arbitrary depth structure you could use (untested)
Data::Walk, Data::Rmap, Data::Visitor::Callbackuse Data::Visitor::Callback; my $v = Data::Visitor::Callback->new( ignore_return_values => 1, hash => sub { my %map = ( qw/ abeLincoln lincoln / ); my $ref = $_; ##!!! my %new ; for my $key ( %{$ref} ){ my $fkey = $map{$_} ; $new{ defined $fkey ? $fkey : $key } = $ref->{$key}; } %{$ref} = %new; }, ); $v->visit();
|
|---|