I'd apply a small change:
use strict;
use warnings;
use Data::Dumper;
my %celebs = (
'Bob Dole' => {
'address' => '123 peach st.',
'spouse' => 'Bill Clinton',
'father' => 'Frank Dole'
},
'Al Pacino' => {
'address' => '123 orange st.',
'spouse' => 'Robert Deniro',
'father' => 'Marlon Brando'
}
);
my @people = map {
{
name => $_,
%{$celebs{$_}}, # <- Change is here
}
} keys %celebs;
print Data::Dumper->Dump( [\@people],[qw(*people)] );
So you don't need to "hard code" the celeb's keys.
s$$([},&%#}/&/]+}%&{})*;#$&&s&&$^X.($'^"%]=\&(|?*{%
+.+=%;.#_}\&"^"-+%*).}%:##%}={~=~:.")&e&&s""`$''`"e