[Dresden-pm] Verständnisfrage zum print-Befehl bei Debconf::Client::ConfModule
Martin Probst (RobHost Support)
support at robhost.de
Mo Jun 7 11:39:36 PDT 2010
Hallo,
Am 07.06.2010 um 19:39 schrieb Hans-Dietrich Kirmse <hd.kirmse at gmx.de>:
> Hallo,
>
> Steffen Schwigon schrieb:
>> Hans-Dietrich Kirmse <hd.kirmse at gmx.de> writes:
>>>> Probier doch nach dem get() mal ein
>>>>> select( STDOUT );
>>>> und schau ob wieder die Konsole als Standard-Ausgabe verwendet
>>>> wird.
>>> nein, passiert leider nicht.
>> Und Du hast auch *danach* das print $value; probiert?
>
> bevor wir aneinander vorbeireden, das habe ich gerade probiert:
Ja so meinte ich das. Das sollte wie erwähnt STDOUT wieder als
Standard-Ausgabekanal nutzen.
>
>
> #!/usr/bin/perl
> use warnings;
> use strict;
>
> use Debconf::Client::ConfModule ':all';
> version('2.0');
> my ($status,$value) = get('delixs/host');
>
> select( STDOUT );
>
> print $value, "\n";
>
> open DATEI, ">", "test2.txt" or die;
> print DATEI $value;
> close DATEI;
>
> __END__
>
>
> auf der Konsole passiert *NICHTS*
> aber die Datei "test2.txt" wurde angelegt und der Hostname 'alix'
> reingeschrieben.
>
> Ohne zu wissen wie es geht, aber ich hätte erwartet, dass ich das
> Dateihandle(?) STDOUT erstmal sichern muss und dann wieder
> zurückschreiben muss. Aber wie gesagt, ich kenne mich da nicht aus u
> nd
> weiss erst recht nicht wie es geht.
Normalweise sind STDIN, -OUT, -ERR per Default vorhanden, außer diese
werden explizit überschrieben. Du könntest sowas wie
am Anfang:
my $out = *STDOUT;
vor dem print:
select($out);
probieren. Allerdings weiß ich im Moment nicht ob Perl intern dup()
nimmt oder ob $out nur eine Referenz auf STDOUT ist. Dann würde dies
nichts nützen.
MfG
Maddin
>
Mehr Informationen über die Mailingliste Dresden-pm