in reply to Translate or morph hash keys to different names

For arbitrary depth structure you could use (untested)

use 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();
Data::Walk, Data::Rmap, Data::Visitor::Callback
  • Comment on Re: Translate or morph hash keys to different names (Data::Walk, Data::Rmap, Data::Visitor::Callback)
  • Download Code