use strict; use warnings; our $test = { first => { one => { number => 1 }, two => { number => 2 }, three => { number => 3 } }, second => { one => { number => 1 }, two => { number => 2 }, three => { number => 3 } }, third => { one => { number => 1 }, two => { number => 2 }, three => { number => 3 } } }; my $input = ; $input =~ s/\n$//; my $dump = $test->{$input}; use Data::Dumper; print Dumper( $dump ), "\n"; __END__ % myprog.pl first $VAR1 = { 'three' => { 'number' => 3 }, 'one' => { 'number' => 1 }, 'two' => { 'number' => 2 } };