use warnings; use strict; use List::Util qw/ min max sum /; my $a = -55; my $b = -54; my $c = -55; my $d = -54; for (1..110) { my $file = "x_$a\_to_$b\_y$c\_to_$d"; open(my INFILE, '<', $file) or die "opening '$file': $!"; my @column8; # FRESH, NEW, EMPTY ARRAY for each file! ## YES defining here again my @column8 is very good while(){ push @column8, (split(/\s+/, $_))[7]; } $ZMAX = max @column8; $ZMIN = min @column8; $thick = $ZMAX - $ZMIN; print "$thick\n"; $c++; $d++; }