#Um dos possíveis consertos (não testei): local $/; (my $data) = split(/- END TEST/, <DATA>); my @registros = split (/\s*- TESTE\s*/, $data); shift @registros; for my $i (0..$#registros) { print "Registro $i:\n$registros[$i]\n"; } __DATA__ - TESTE bla bla bla bla - TESTE bla bla bla - TESTE bla bla bla - END TEST deveria ignorar estes dados