sub process_file { my ($fh, $re) = @_; while (<$fh>) { next unless /$re/; # do stuff with captured data } }