my @files; my (@l_count, $l_count); my (@f_count, $f_count); my @all; grep{ -f and push @files, $_ }glob '*'; for( @files ){ open FH, $_ or die $!; while( ){ push @l_count, $_ for split '\s+', $_; for( @l_count ){ $l_count += $_ for @l_count } @l_count = (); push @f_count, ( $l_count / $#l_count ); $l_count = 0; } close FH; $f_count += $_ for @f_count; @f_count = (); push @all, ( $f_count / $#f_count ); $f_count = 0; } open FH, '>end_res.log' or die $!; print FH $_, $/ for @all; close FH;