wenn die immer so aussehen, dann schreib doch einfach ein zweites perl-skript, dass die datei alle 3*n zeilen splittet und in fortlaufend nummerierten "preparsed" dateien speichert. bei der gelegenheit kannst du den trenner entfernen, der ist hier sinnlos.
oder im gleichen skript, wobei der "preparser" immer den trenner entfernt, aber nur bei bedarf die datei spaltet (z.b. bei > 100MB).
die dateinamen wandern dann in ein array, auf das der zweite teil zugriff hat.
-- stefan