in reply to Re: A very odd happening (at least. . . to me)
in thread Processing large files many times over
Regex matching can be expensive, so if you're doing the same match multiple times, it's usually better to do it once and save the results.my @lines = map { [ /.*?\t(.*?)\t(.*?)\t(.*?)\t(\d)/ ] } <IN>; # ... rest of function
I also noticed you're using $average = $sum / $#things to take an average. Despite appearances, $#things isn't the number of @things. Instead, you'll want to use $average = $sum / @things, since an array evaluates to its length in a scalar context.
/s
|
|---|