in reply to Populating hash keys

my @keys = qw (1,2,3);
should probably either be:
my @keys = (1,2,3); # or (1..3) if they're consecutive numbers
or:
my @keys = qw(1 2 3);

But to get back to your question:

use Data::Dumper; my @keys = (1,2,3); my $href = 'somedata'; $href = {pop(@keys) => $href} while @keys; #$href = {$_ => $href} foreach reverse @keys; # alternate solution, if + @keys is constant or needed later print Dumper( $href ); __END__ $VAR1 = { '1' => { '2' => { '3' => 'somedata' } } };

Liz

Update:
Added (1..3), suggested by broquaint

Added foreach reverse alternative, suggested by myself ;-)