use strict; use warnings; use Data::Dumper; my %hash; my $loadedFile = join "", ; { no strict; eval ($loadedFile); if ($@) {print 'eval error:'.$@."\n"; } } my @hashData = $hash{Scope}{model}; my @dereferencedData; foreach my $line (@hashData){ @dereferencedData = @$line; } print "Data: \n"; print Dumper @dereferencedData; print "\n"; __DATA__ %hash = ( #scope changes Scope => { model => [ 1,2,3,4,5,6 ] }, IrreleventScope =>{ a=>'b' } ) ;