in reply to Help to slurp records - $/ maybe?

I'd stick with the conventional approach here. All else is bound to be a dirty/bad hack. You don't like redo? Fine, you can use a nested loop.
local $_; do { my $rec = ''; do { $rec .= $_ = <>; } until /^Field 3/ or !defined; # ... } while defined;

Makeshifts last the longest.