Hallo zusammen
Ich habe ein kleines, nerviges Problem auf dass ich einfach keine Antwort finden kann.
Ich habe mir ein Perl-Skript geschrieben indem eine Fortschrittsanzeige aus Punkten vorkommt. (Getting Discs ......)
Leider wir mir der Text erst nach dem abschliessenden Newline angezeigt. (Und es ist somit keine Fortschrittsanzeige mehr, da alles auf einmal erscheint)
CODE:
foreach my $disc (@discs) {
my $detail = $cddb->get_disc_details($genre, $cddb_id);
print ".";
}
print "\n"
Wie kann ich das am besten umgehen?
Besten Dank!
Philippe
Textausgabe ohne Newline
Re: Textausgabe ohne Newline
Hier, hier! Ich, ich! <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
Ernsthaft: Viel perl kann ich nicht, aber das hatte ich mal irgendwo gesehen und als Codebeispiel unter in "man perlfunc" wiedergefunden:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">select STDOUT ; $| = 1; # make unbuffered</font><hr></pre></blockquote>Wer mehr perl kann als ich, kann vielleicht auch sagen, ob das select-Statement vorher notwendig ist ind welche Nebeneffekte es hat...
Jochen
Ernsthaft: Viel perl kann ich nicht, aber das hatte ich mal irgendwo gesehen und als Codebeispiel unter in "man perlfunc" wiedergefunden:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">select STDOUT ; $| = 1; # make unbuffered</font><hr></pre></blockquote>Wer mehr perl kann als ich, kann vielleicht auch sagen, ob das select-Statement vorher notwendig ist ind welche Nebeneffekte es hat...
Jochen
Re: Textausgabe ohne Newline
## FILEHANDLE wählen,
select STDOUT;
## auf welchen sich die Spezialvariable
$| = 1;
## bezieht. (Ist wohl ohne Eingriffe STDOUT)
## Bei vielen Debug-Meldungen auf STDERR käme aber vielleicht
## auch mal ein Puffern in Frage:
select STDERR; $| = 0;
select STDOUT;
## auf welchen sich die Spezialvariable
$| = 1;
## bezieht. (Ist wohl ohne Eingriffe STDOUT)
## Bei vielen Debug-Meldungen auf STDERR käme aber vielleicht
## auch mal ein Puffern in Frage:
select STDERR; $| = 0;
Re: Textausgabe ohne Newline
## Korrekter ist wohl, `$|' bezieht sich immer auf das Standard-File-Handle (STDIO)
## und mittels `select FILEHANDLE' wird eben jenes zum Standard. Also nach einem
select IrgendEinHandle; $| = 1;
## wieder
select STDOUT;
## Sonst landet ein `print( "Ein String" )' nicht auf STDOUT,
## sondern in IrgendEinHandle.
## Perl-Gewurschtel ##
## und mittels `select FILEHANDLE' wird eben jenes zum Standard. Also nach einem
select IrgendEinHandle; $| = 1;
## wieder
select STDOUT;
## Sonst landet ein `print( "Ein String" )' nicht auf STDOUT,
## sondern in IrgendEinHandle.
## Perl-Gewurschtel ##