Perl: sofort in Datei schreiben

Dieses Thema: "Perl: sofort in Datei schreiben" im Forum "Ruby, php, Perl, Python ..." wurde erstellt von megamimi, 06.05.2003.

  1. #1 megamimi, 06.05.2003
    megamimi

    megamimi Nörgler vom Dienst

    Dabei seit:
    12.01.2003
    Beiträge:
    469
    Zustimmungen:
    0
    Ort:
    /home/megamimi
    hi...

    Ich habe vor kurzem durch Zufall herausgefunden, dass Perl erst nach dem Ende des Programs in Dateien schreibt. Also wenn man
    PHP:
    #! /usr/bin/perl -w

    open(TEST,">blabla.txt") or die("$!\n");

    print 
    TEST "BLABLABLABLA\n";

    while(
    1){}

    close(TEST);
    schreibt und das Program mit ^C beendet, hat blabla.txt keinen Inhalt. Nun meine Frage: Wie kann ich erreichen, dass sofort beim ausführen von print in die Datei geschrieben wird, also in etwa so wie bei flush unter C++?

    danke, mimi

    PS: nich schlagen wenns ne dumme frage is, aber ich bin halt noch kein perl-gott:D
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 ExRevel, 06.05.2003
    ExRevel

    ExRevel Routinier

    Dabei seit:
    16.02.2003
    Beiträge:
    430
    Zustimmungen:
    0
    Ort:
    Stuttgart
    Nun gut, es gibt da ein paar moeglichkeiten das zu machen...

    Du koenntest rein theoretisch wenn du C kannst einfach den C-Code den du brauchst in Perl einbinden an den entsprechenden Stellen, hier erhaelst du alle wichtigen Informationen:

    http://www.perldoc.com/perl5.8.0/pod/perl.html

    Das ist dann etwas uebermaeßig aufwendig, gell! Also geht das bei perl natuerlich auch anders... du musst die Autoflush-Flag von dem benutzen filehandle auf true setzen, dann wird sofort an die datei uebergeben, das passiert bei einem print() oder write() normalerweise halt nicht, wird alles gebuffert... Also du setzt die Flag [$|] wie folgt:

    Code:
    $old_fh = select(OUTPUT_HANDLE);
    $| = 1;
    select($old_fh);
    
    Auswaehlen des filehandles, dann flagsetzen und Variable des handles nochmal auswaehlen, ab nun wird fuer jedes zeichen das du sendest sozusagen der syswrite befehl benutzt und es ist drin und auch bei einem STRG+C passiert dir nix schlimmes mehr! :)

    Nebenbei... es geht noch einmal anders.... :)

    Code:
    syswrite(OUT, $char, 1)
    
    Hab ich mich net mit auseinandergesetzt, keine ahnung wie das so ist! :)

    ciaoi Exi
     
  4. #3 megamimi, 06.05.2003
    megamimi

    megamimi Nörgler vom Dienst

    Dabei seit:
    12.01.2003
    Beiträge:
    469
    Zustimmungen:
    0
    Ort:
    /home/megamimi
    hi...

    Danke, funzt einwandfrei:D

    cu mimi
     
  5. #4 ExRevel, 06.05.2003
    ExRevel

    ExRevel Routinier

    Dabei seit:
    16.02.2003
    Beiträge:
    430
    Zustimmungen:
    0
    Ort:
    Stuttgart
    Na, das habe ich doch auch gehofft! *erleichtert ist* :) War ja schliesslich meine erste taetigkeit als Perlmoderator hier!

    ciao Exi
     
Thema:

Perl: sofort in Datei schreiben

Die Seite wird geladen...

Perl: sofort in Datei schreiben - Ähnliche Themen

  1. Linux Foundation: Hyperledger-Projekt startet mit 30 Mitgliedern

    Linux Foundation: Hyperledger-Projekt startet mit 30 Mitgliedern: Das Hyperledger-Projekt der Linux Foundation will eine neue Form der dezentralisierten Kontoführung nach dem Prinzip der »distributed ledger« bei...
  2. Perl 6 offiziell vorgestellt

    Perl 6 offiziell vorgestellt: Wie erwartet, ist die Version C(hristmas) von Perl 6 veröffentlicht worden. Perl 6 stellt nicht, wie der Name suggeriert, einen Nachfolger von...
  3. Perl: 20 Jahre CPAN

    Perl: 20 Jahre CPAN: Vor 20 Jahren wurde das erste Modul in das Comprehensive Perl Archive Network (CPAN) hochgeladen, woran Neil Bowers mit einem Abriss der...
  4. Perl 5.22.0 freigegeben

    Perl 5.22.0 freigegeben: Die neue Version 5.22 von Perl bringt den Anwendern mehr Sicherheit bei Eingabedateien, Unicode 7.0 und zahlreiche weitere Verbesserungen....
  5. [Perl] Perl OO Methodenaufruf in anderem Objekt

    [Perl] Perl OO Methodenaufruf in anderem Objekt: Hallo, Ich bin dabei in Perl ein Pokerspiel zu programmieren, hänge aber momentan an einem Problem, wo ich nicht weiterkomme. Ich habe die...