in reply to Re: unreadline function?
in thread unreadline function?

I really hate unless (cond) { ... } else { ... } constructs. I think they're better written as if (not cond) { ... } else { ... }. It could be I'm an old C programmer, but I find it easier to follow.

More importantly, I think your code will fail to process the last record. I would do something like the following:

my @record; while( <FH> ) { chomp; if( /start-delim/ ) { @record and process( @record ); @record = (); } push @record, $_; } @record and process( @record );

If there was an end delimiter, the loop could be flipped around to a do/while, and one could do away with the two calls to process().

I note in passing that davido's idea of setting $/ is excellent, but it onlys work if the delimiter is a fixed string. If you need an RE to match the delimiter, a different approach is also possible.