Немного неясно, но разве это то, что вам нужно?
Оператор диапазона идеально подходит для такого рода задач:
#!/usr/bin/perl
my @array;
while (<DATA>) {
push @array, $_ if /ABCD/ .. 0
}
shift(@array);
print @array;
__DATA__
BCDA
ABCD
AAAABBBBCCCCDDD
AAAAAABBBBBBCCC
AAAAAAAAAAAAAA
Выходы:
AAAABBBBCCCCDDD
AAAAAABBBBBBCCC
AAAAAAAAAAAAAA