perl -MO=Deparse -MData::Dumper -le '%h = (1 => 2, a=>"b", c => 2); %h = reverse ( %x = reverse %h); print Dumper({x => \%x, h =>\%h});' BEGIN { $/ = "\n"; $\ = "\n"; } use Data::Dumper; (%h) = (1, 2, 'a', 'b', 'c', 2); (%h) = reverse((%x) = reverse(%h)); print Dumper({'x', \%x, 'h', \%h}); -e syntax OK