Tormen G.: Problem mit der Ausgabe bei Perl TK

Hi,
also ich lese hier eine Datei aus und danach wird sie mit $Ergebnis->insert('end', $_); in MainWindows ausgegeben, aber erst wenn Perl die gesamte Datei eingelesen hat! Ich hätte es aber gerne, dass Perl nach jeder Zeile sofort eine Ausgabe in MainWindow macht. Es dauert etwas länger bis die gesamte Datei geschrieben wird, da es sich um einen PortScanner handelt, der prüft ob der Port offen ist und dann erst einen Eintrag in scanlog.txt vornimmt. So und sobald er einen hat wäre es schön wenn man den direkt am Bildschirm sehen könnte.
Wer kann mir da helfen?

open(LOG2,"scanlog.txt") die "Kann Scanlog nicht oeffnen:$!\n";

while(<LOG2>)
{
$Ergebnis->insert('end', $_);
}
close(LOG2);

  1. Hallo Tormen

    Probier mal folgendes. "$| = 1;" bewirkt, dass Daten nach STDOUT ungepuffert ausgegeben werden.

    open(LOG2,"scanlog.txt") || die "Kann Scanlog nicht oeffnen:$!\n";

    $| = 1;

    while(<LOG2>)
    {

    »»  $Ergebnis->insert('end', $_);

    }
    close(LOG2);

    Warum schreibst du eigentlich nicht "print $_;" in der Schleife, ist doch viel einfacher?

    Gruss
    Andreas