Thomas Lachmann: große Files öffnen? die 2. ;-)

Ups;-)

Da is' mir beim Bsp. schreiben doch ein kleiner Fehler unterlaufen ;-))

#!/usr/bin/perl
open(NEWDAT, ">>newmail.txt");

open(OLDDAT, "<maildat.txt");
while(<OLDDAT>)
{
  $_ =~  s/HALLO/HALLIHALLO/g;
  print NEWDAT $_;
}
close(OLDDAT);
close(NEWDAT);

So muesste es doch eigentlich funktionieren, oder??
Aber er schreibt immer noch nur eine 10.1kb Datei;-(

Noch eine Idee??

  1. Hi Thomas!

    Naja, haettest ja ruhig den alten Thread weiterverwenden koennen...

    #!/usr/bin/perl
    open(NEWDAT, ">>newmail.txt");

    open(OLDDAT, "<maildat.txt");
    while(<OLDDAT>)
    {
      $_ =~  s/HALLO/HALLIHALLO/g;
      print NEWDAT $_;
    }
    close(OLDDAT);
    close(NEWDAT);

    So muesste es doch eigentlich funktionieren, oder??

    Ja. Mir faellt zumindest nichts falsches auf. Die Zeile
        >   $_ =~  s/HALLO/HALLIHALLO/g;
    koennte man vielleicht mit
        s/HALLO/HALLIHALLO/g;
    abkuerzen, da sich das sowieso auf $_ bezieht, aber es sollte beides ok sein.

    Aber er schreibt immer noch nur eine 10.1kb Datei;-(

    Und enthalten wenigstens diese 10 kB genau die Daten, die Du erwartest? Ist Deine Platte auch nicht voll (oder disc quotas oder wie das heisst ausgereizt)? Hast Du mal mit perl -w ausgefuehrt? print hat uebrigens auch einen Rueckgabewert, naemlich true if successful. Probier doch mal
        print NEWDAT $_  or die("Cannot write to NEWDAT! Reason: $!\n");
    oder
        print NEWDAT $_  or print STDERR "Cannot write to NEWDAT! Reason: $!\n";
    , je nachdem, ob Du die Ausfuehrung gleich beenden willst oder nicht.

    Tja, schau mal, mehr faellt mir jetzt auch nicht ein.

    Calocybe