my @entries; my $entry; my $start_parsing = 0; while(){ if(/\d-\d\d-ABC\d\d/){ push(@entries, $entry) if(defined $entry); $entry = ''; $start_parsing = 1; } next unless($start_parsing); $entry .= $_; } push(@entries, $entry) if(length($entry) > 0); #Last entry my $i = 0; foreach(@entries){ print "Entry #$i:\n$_\n"; $i++; } __DATA__ 1-11-ABC22 (12:12) ABC 12 Foo Bar Foo Bar Foo Bar Foo Bar 2-15-ABC33 (12:12) ABC 12 Foo Bar Foo Bar Foo Bar Foo Bar -- 1-11-ABC33 (12:12) ABC 12 Foo Bar Foo Bar Foo bar Foo Bar -- 1-11-ABC33 (12:12) ABC 12 Foo Bar Foo Bar Foo abr Foo bar Foo Bar Foo Bar Foo Bar -- 2-15-ABC45 (12:12) ABC 12 Foo Bar Foo Bar Foo Bar Foo Bar 3-33-ABC15 (12:12) ABC 12 Foo Bar Foo Bar