my @variable; for (... ) { ... undef @variable; } #### for (...) { my @variable; ... # no manual cleanup necessary. } #### foreach $filepath (get_file_list($dir)) { my (%company_hist, @company_list, %reference_hist, @reference_list) ; my $twig = XML::Twig -> new( twig_roots => { company => sub { push @company_list, $_[1]->{'att'}->{'code'} }, ... } ); #### #my($k, $v); #while ( ($k,$v) = each %reference_hist ) { #print "$k => $v\n"; #} #### use Data::Dumper; ... print Dumper \%reference_hist;