while (<$fh>) { process_block() if /^START/; } sub process_block { while (<$fh>) { return() if /^END/; return() if "data isn't cool anymore"; #pseudo code ..process cool data.. #pseudo code } }