Hell-O!
Das erwähnte erste Skript erzeugt eine 1,2 GB große Ausgabedatei quasi ohne Punkt und Komma – sprich Zeilenumbrüche. Nun kommt dieses Monster auf das zweite (obige) Perlscript zu.
Also wird es beim Einlesen als *eine* Zeile behandelt, sofern du $/ nicht modifiziert hast. Starker Tobak für das arme System :-)
print STDERR tell(DATEI)."\n";
1205690315
Du befindest dich am Ende der Datei, bereits beim ersten Lesevorgang, was meine obige Vermutung stützt. Vielleicht solltest du die Datei besser zeichen- bzw. blockweise einlesen, siehe hierzu getc und Term::ReadKey.
Dein Substitution Loop könnte hierin begründet sein:
$_ =~ s/\x5B\x50\x5B\xff\x02/\x0A/g;
$_ =~ s/\x5B\x50\x5B\xff\x03/\x0D/g;
$_ =~ s/\x5B\x50\x5B\xff\x04/\x20/g;
$_ =~ s/\x5B\x50\x5B\xff\x05/\x19/g;
da du in der ersten Zeile bereits alles ersetzt hast, was in den nächsten drei Zeilen gesucht ist. Auch ein chomp $_;
vor der Ersetzung könnte eventuell helfen.
Sind alles nur Vermutungen, vielleicht hilft's dir ja weiter.
Siechfred
Hier könnte Ihre Werbung stehen.
Viel Lärm um nichts || Steuerliche Einordnung des Rangrücktritts