use Data::Dumper; use strict; use warnings; my $hashref; my @foo = qw[1 2 3 4 5]; my $string = "\$hashref->"; foreach my $item (@foo) { $string .= "{$item}"; } $string .= "= undef"; eval($string); print Dumper($hashref);