Robert Kuhlemann: Zeilenweise lesen, ohne gleich alles zu lesen

Hallo,
habe aktuell ein Problem mit einer grossen Datei, die ich mit Perl einlesen will.
Arbeite ich mit dem Handle-Namen, z.B.
foreach (<IN>) {..
meldet sich Perl nach 'ner halben Stunde mit 'ner 'Out-of-Memory'-Meldung.
Arbeite ich mit
while(! eof(IN)){
  read (IN, $x, $lae, $ab);
so finde ich das Zeilenende nur schwerlich.
Frage: Gibt's ne einfache Methode, ECHT zeilenweise (d.h. bis zum jeweiligen Zeilenumbruch) zu lesen, ohne gleich die ganze Datei in den Speicher zu laden?

MfG Robert

  1. Hallo,

    Frage: Gibt's ne einfache Methode, ECHT zeilenweise (d.h. bis zum jeweiligen Zeilenumbruch) zu lesen, ohne gleich die ganze Datei in den Speicher zu laden?

    while (<IN>)
      {
      # .. bearbeite die Zeile, die in jetzt in $_ steht
      }

    Dieses Konstrukt kommt so oft in der Dokumentation vor, daß es schon eine Kunst ist, nicht darüber zu stolpern. ('perldoc -f open' ist ein naheliegendes und schönes Beispiel)

    Grüße
      Klaus

    1. Danke! So klappts!

      Dieses Konstrukt kommt so oft in der Dokumentation vor, daß es schon eine Kunst ist, nicht darüber zu stolpern. ('perldoc -f open' ist ein naheliegendes und schönes Beispiel)

      Das Problem ist immer nur: wo finde ich es?
      In Selfhtml z.B. finde ich obiges Beispiel unter den Anweisungen 'Format' und/oder 'Tell'. Da muss man natürlich erst mal drauf kommen!

      Gruss Robert

      1. Hallo,

        Das Problem ist immer nur: wo finde ich es?

        Wenn Du Perl installiert hast, dann normalerweise auf Deiner Festplatte.

        In Selfhtml z.B. finde ich obiges Beispiel unter den Anweisungen 'Format' und/oder 'Tell'. Da muss man natürlich erst mal drauf kommen!

        Ich denke nicht, daß der Perl-Teil von SELFHTML als Ersatz zu der eigentlichen Dokumentation gedacht, bzw. geeignet, ist. Es kann vielmehr gerade einmal einige Grundlagen und, als Anknüpfungspunkt zum großen Thema von SELFHTML, die Verwendung von Perl als Web-Scriptsprache näher bringen. Die HTML-Doku, die beispielsweise dem Activestate-Port beiliegt, umfaßt ca. 10 MByte (bei mir sind es aber inzwischen, durch die installierten Module, so ungefähr 16 MByte). http://www.perldoc.com bietet übrigens eine Online-Variante der Basis-Dokumentation an.

        Vielleicht willst Du auch einmal im Web herumsuchen, was es nicht alles so gibt. http://aktuell.de.selfhtml.org/links/cgiperl.htm könnte da ein guter Ausgangspunkt für Dich sein.

        Grüße
          Klaus