in reply to Hash to Hash to Hash ....

There is a straight forward iterative solution:

my @list1 = qw/item1 item2 item3/; my @list2 = qw/item1 item2 item4 item5/; my %hash; my $hr = \%hash; $hash{item1}{item2}{item3} = 3; $hash{item1}{item2}{item4}{item5} = 4; $hr = $hr->{$_} for (@list1); print $hr; $hr = \%hash; $hr = $hr->{$_} for (@list2); print $hr;

-- Hofmator