Jemand zu Hause?Leser: 33
Storable empfehlen. Damit kannst du beliebige Datenstrukturen serialisieren, über den Socket schicken und auf der anderen Seite wieder einfach deine Datenstruktur aufbauen.
JSON oder
YAML serialisieren. kommt dann vielleicht auch auf die groesse an.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-ProblemQuotewarum kein modul?
2010-08-09T16:43:47 worst_caseTrotzdem, bitte mach mir einen Vorschlag welches Modul ich mir genauer ansehen soll.
JSON::Any verwenden
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2010-08-09T16:34:49 pqwarum kein modul? das macht das ganze wartbarer als wenn du dir selbst so eine routine frickelst.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2010-08-09T16:08:43 worst_casekann ich ein Hash per Socket von einem Perlscript zum anderen (Client-> Server) übergeben. Bis jetzt ist mir nur String bekannt, den ich aus dem Hash erzeuge und dann wieder zum Hash umwandle. Soweit funktioniert alles Prima.
Vielleicht gibt es auch eine Art "join" die mir aus einem String "Hans:123,Otto:456" ein hash generiert ??
$rec = pack "Z255Z255", $key, $value;
1
2
3
while(read $socket, my $bin, 510){
my($k,$v) = unpack "Z255Z255", $bin; # same Template as above
}$len4 = pack "N", length, $key;
1
2
3
4
5
# wir haben ein utf8-kodiertes 'ä'
use utf8; # zeichenorientiert
print length 'ä'; # 1
no utf8; # byteorientiert
print length 'ä'; # 2
2011-03-22T14:43:06 rostiAlso ich serialisiere gerne auf byte-Ebene ;)
Storable.pm ist ok. Zum Selbermachen, zwei Algorithmen:
-packe key und value in Records mit fest vorgegebener Länge like this:
Code: (dl )$rec = pack "Z255Z255", $key, $value;
1 2
perl -e 'print pack "(w/a)*", @ARGV' vafvga vafdgb wtrbw rhb yhjeyt heythehyetyhe ythetyh etyh | perl -le 'undef $/; print join "\t", unpack "(w/a)*", scalar <>'
2011-03-22T18:38:58 torstenw als Längenangabe ist meist auch besser geeignet, als z.B. N, denn es verbraucht nur so viele Bytes für die Anzahl wie nötig.