Thread Vor kopieren warten bis Subroutine abgeschlossen
(28 answers)
Opened by giordano at 2010-02-17 14:50 Code (perl): (dl
)
$| = 1 schaltet den Ausgabepuffer nicht ab. Dieses lese ich immer wieder was aber falsch ist. Als erstes wird nur "AutoFlush" aktiviert, daher der Puffer existiert immer noch, nur wird dieser immer schnellstmöglicht geleert wie es geht. Ansonsten mag das zwar fast noch egal und kleinkarriert wirken. Viel wichtiger ist aber das das was "$| = 1" macht genau beschrieben ungefähr so lautet: Quote Was ist das derzeit aktive Filehandle? Standardmäßig ist das lediglich "STDOUT". Das heißt mit "$| = 1" schaltet man AutoFlush für STDOUT aktiv. Aber nicht global für alle Dateihandles. Daher wenn er ein "print $OUTPUT 'asd'" hat ist $OUTPUT nicht davon betroffen. Deswegen ist meine empfehlung auch das "$| = 1" gefrickel zu vergessen. Und stattdessen "use IO::Handle" einzubinden. Hat man das gemacht kann man auf jedem Dateihandle einfach eine Methode aufrufen um autoflush zu aktivieren. Code (perl): (dl
)
1 2 3 4 5 6 use IO::Handle; STDOUT->autoflush(1); open my $fh, '>', 'asd.txt' or die $!; $fh->autoflush(1); Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|