use strict; use warnings; my $file = <) { next unless m/Optimized Parameters/ .. m/GradGradGrad/; next unless $valueLength or /^(.*?Name)(\s*Value)/; if (! $valueLength) { $valueStart = length $1; $valueLength = length $2; next; } my $value = substr $_, $valueStart, $valueLength; next unless $value =~ /^\s*[+-]?\d+(\.\d*)?\s*$/; next if $value < $min or $value > $max; print $_; } close $inFile;