Ich arbeite gerade an einem Perl Script, welches Werte an ein anderes Programm übergeben muss.
Gemacht wird dies, indem eine Datenstruktur in serialisierter Form in die Standartausgabe geschrieben wird.
Wenn ich den returnHash mit Dumper ausgebe bekomme ich folgende Ausgabe:
Der Output des Scripts ist:
Das ist jedoch nicht ganz das, was ich wollte. Eigentlich sollte die komplette Datenstruktur geserialisiert werden und nicht nur der erste Wert des ersten Elements.
Leider finde hab ich keine Ahnung, warum es nicht funktioniert. Ich hoffe ihr könnt mir weiterhelfen.
Gemacht wird dies, indem eine Datenstruktur in serialisierter Form in die Standartausgabe geschrieben wird.
Code:
sub getAll()
{
my %returnHash = ();
opendir(DIR, $CA) or die "can't opendir $CA: $!";
while (defined($file = readdir(DIR))) {
next if $file =~ /^\.\.?$/;
$returnHash{$file} = ();
$returnHash{$file}{"type"} = "VPN";
$returnHash{$file}{"username"} = $file;
$returnHash{$file}{"status"} = 0;
$returnHash{$file}{"comment"} = "";
$returnHash{$file}{"cert"} = "";
$returnHash{$file}{"certKey"} = "";
my $commentFile = $CA . "/" . $file . "/comment.txt";
open(my $fh, $commentFile) or die "Datei öffnen nix gut $commentFile";
read($fh, $returnHash{$file}{"comment"}, 4096);
close($fh);
}
closedir(DIR);
print serialize(%returnHash),
}
Wenn ich den returnHash mit Dumper ausgebe bekomme ich folgende Ausgabe:
Code:
$VAR1 = 'nochEinTest';
$VAR2 = {
'cert' => '',
'comment' => 'asd
',
'status' => 0,
'type' => 'VPN',
'certKey' => '',
'username' => 'nochEinTest'
};
$VAR3 = 'testKunde';
$VAR4 = {
'cert' => '',
'comment' => 'kommentar
a
b
c
',
'status' => 0,
'type' => 'VPN',
'certKey' => '',
'username' => 'testKunde'
};
Der Output des Scripts ist:
Code:
s:11:"nochEinTest"
Das ist jedoch nicht ganz das, was ich wollte. Eigentlich sollte die komplette Datenstruktur geserialisiert werden und nicht nur der erste Wert des ersten Elements.
Leider finde hab ich keine Ahnung, warum es nicht funktioniert. Ich hoffe ihr könnt mir weiterhelfen.