kann man über Internet Domain Sockets auch Datenstrukturen übertragen?
Nicht direkt nehme ich an (ich kenn mich mit Sockets nicht aus)
Ich erzeuge mit IO::Socket::INET eine Client-Server Verbindung.
Nun möchte ich vom Server zum Client beispielsweise eine
Datenstruktur übergeben. In meinem Fall wäre das eine Hashreferenz
mit weiteren Referenzen auf Hashes und Arrays.....Oder bin ich dazu
gezwungen, die Daten in $data mit einer Schleife zu Bearbeiten?
Nein, use Data::Dumper.
Darüber hinaus wüßte ich gerne noch etwas anderes.
Ich habe mir eine Subfunktion gebastelt, der ich als Argument einen
Hash übergebe, damit die Subfunktion weiß, was genau Sie machen soll.Der Hash ist sehr simple und in der Subfunktion wird nur nach der
Existenz bestimmter Schlüssel gesucht. Existiert ein bestimmter
Schlüssel - der Wert des Schlüssels ist vollkommen unwichtig -
wird etwas weiteres angestoßen. Hier ein Beispiel:my $hash = {
"key1" => 1,
"key2" => 1,
"key3" => 1,
}
Du kannst auch Funktionsreferenzen als Werte übergeben.
my $hash = {
"key1" => &func_1,
"key2" => &func_2,
"key3" => &func_3,
}
und dann:
my $r = func($hash);
sub func {
my $q = shift;
my $r = {};
foreach(keys %$q)
{
$r->{$_} = &{ $q->{$_} }() if $q->{$_};
}
return $r;
}
Wobei natürlich die Funktionen dann Referenzen zurückgeben müssen auch keine Listen.
Struppi.