Textausgabe ohne Newline

Antworten
Nachricht
Autor
aebi
Beiträge: 41
Registriert: 02. Dez 1999 10:32
Wohnort: Kastanienbaum

Textausgabe ohne Newline

#1 Beitrag von aebi » 20. Feb 2003 23:03

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

Jochen

Re: Textausgabe ohne Newline

#2 Beitrag von Jochen » 21. Feb 2003 8:27

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

S. Tdout

Re: Textausgabe ohne Newline

#3 Beitrag von S. Tdout » 23. Feb 2003 3:55

## 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;

S. Tdout

Re: Textausgabe ohne Newline

#4 Beitrag von S. Tdout » 23. Feb 2003 5:15

## 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 ##

S. Tdout

Re: Textausgabe ohne Newline

#5 Beitrag von S. Tdout » 23. Feb 2003 5:16

STDOUT statt STDIO

Antworten