Leser: 33
Quotewarum kein modul?
2010-08-09T16:43:47 worst_caseTrotzdem, bitte mach mir einen Vorschlag welches Modul ich mir genauer ansehen soll.
2010-08-09T16:34:49 pqwarum kein modul? das macht das ganze wartbarer als wenn du dir selbst so eine routine frickelst.
2010-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.