in reply to Simple Array Followup

This sounds like it might at least be related to token parsing, in which case Parse::Token might work well for you. Otherwise, it's essentially a simple switch.

my @array; my $start_regex = qr/^\d{3}:/; # a line beginning with, e.g. 001: my $end_regex = qr/^:::$/; # a line with only ':::' while (<DATA>) { # replace with your FH if ( @array and $_ =~ $end_regex ) { # reached an 'end'. I assume you don't want to keep the end ' +tag' do_something_to(@array); undef @array; } elsif ( @array ) { # filling array push @array, $_; } elsif ( $_ =~ $start_regex and !eof DATA) { # begin filling up the array! push @array, $_; # I assume you want to keep the start 'tag' } else { # we haven't gotten a 'start', } } #_ while{} # deal with the possibility that we 'started' but didn't 'end' if (@array) { warn 'Start with out end at EOF!' }
<-radiant.matrix->
A collection of thoughts and links from the minds of geeks
The Code that can be seen is not the true Code
"In any sufficiently large group of people, most are idiots" - Kaa's Law