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

Martin Probst (RobHost Support) support at robhost.de
Mo Jun 7 14:08:00 PDT 2010


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

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?!

MfG
Maddin


Mehr Informationen über die Mailingliste Dresden-pm