for ($results = 2; $results <34; $results++) { my $file="current$results.res"; open (TALLYRESULTS, ">$file") or die ("cant open results file"); .... } #### for ($results = 2; $results <34; $results++) { my $file="current".$presence.".res"; .... } #### @tree1=@samples[0..2]; ... (another 10 of those) @tree12=@samples[33..35]; for ($z = 1; $z <= 12; $z++) { $arrayname="tree$z"; foreach $patch(@$arrayname) { ... do something } #### my %trees = (1 => "@samples[0..2]", ... (another 10 of these) 12 => "@samples[33..35]", ); while ((my $tree, my $samples) = each (%trees) ){ my @patches = split (/ */, $samples); foreach $patch(@patches) { ... do something }