[Dresden-pm] Verständnisfrage zum print-Befehl bei Debconf::Client::ConfModule

Hans-Dietrich Kirmse hd.kirmse at gmx.de
Mo Jun 7 21:49:47 PDT 2010


Guten Morgen,

Martin Probst (RobHost Support) schrieb:
> So Hans-Dietrich,
> 
> ich hab mir jetzt mal das Modul angeschaut, auf einer der ersten perldoc Zeilen steht auch schon die Erklärung:
> 
> =item import
> 
> Ensure that a FrontEnd is running.  It's a little hackish. If
> DEBIAN_HAS_FRONTEND is set, a FrontEnd is assumed to be running.
> If not, one is started up automatically and stdin and out are
> connected to it. Note that this function is always run when the
> module is loaded in the usual way.
> 
> Deswegen siehst du auch nichts, die verbiegen also explizit STDIN und -OUT.
> Um dies zu umgehen, kannst du folgendes benutzen:
> 
> #!/usr/bin/perl
> use warnings;
> use strict;
> 
> use Debconf::Client::ConfModule ':all';
> version('2.0');
> my ($status,$value) = get('delixs/host');
> 
> open(STDOUT, ">&2");
> print $value, "\n";

ja, das ist mir jetzt verständlich und die Lösung aus meiner Sicht optimal.

> 
> Am ende ist nur die vorletzte Zeile neu, keine Ahnung was das Modul macht, aber ich habe es nicht geschafft das normale "STDOUT" wieder herzustellen. Mit der Lösung werden die Werte nach STDERR geprintet. Hinzu kommt noch das Debconf wild vor sich hin forked und ich nicht genau weiß wo was geändert wird.
> 
> Ich weiß ja nicht was du machen willst/musst, nur ist die Frage ob es dafür vllt. sogar einen anderen Weg gibt, da mir dieser von Debian scheinbar nicht so gedacht/gewollt ist?!

die gehen sicher davon aus, dass man dann auf die Debconf-Datenbank
zugreift, wenn Eingaben erfolgen und dazu werden ja üblicherweise Menüs
aufgebaut. Und dafür gibt es verschiedene Frontends und dafür verbiegen
die eben STDIN und STDOUT.

Da ich aber keine Eingaben mehr brauche (das ist schon erledigt),
brauche ich keine menüs und damit kein Frontend. aber ein paar
Informationen will ich trotzdem (auf der Konsole) ausgeben. Ich denke,
die Lösung ist durchaus vertretbar und auch legitim.

Danke.

Mit freundlichen Grüßen
Hans-Dietrich




Mehr Informationen über die Mailingliste Dresden-pm