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.
In reply to Re:x2 unreadline function?
by grinder
in thread unreadline function?
by aquarium
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |