in reply to Seeking Algorithm

I'd probably do it like this to avoid splitting and comparing items after a match is already found for a line:

while( <> ) { while( /(\d+(?:\.\d+)?)/g ) { if( $1 ne '305.1' && 296.1 <= $1 && $1 <= 314.0 ) { print; last; } } }

(updated slightly)

- tye