Problem mit der Ausgabe bei Perl TK
Tormen G.
- perl
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);
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