Thread Empfehlung Datenbank als Datei
(37 answers)
Opened by bianca at 2019-10-20 19:55
Genau. Grundlagen der Serialsierung und Wiederhestellung von Daten sind Bytewertigkeiten. So erzeugt pack "N" stets genau 4 Bytes für jede Zahl zwischen 0 und 0xFFFFffff.
Was letztendlich die Länge der folgenden Bytesequenz kodiert. Eine Hash kannst z.B. so serialisieren: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 use IO::String; my $io = IO::String->new; # Serialize Key Value foreach my $k( keys %ENV){ my $v = $ENV{$k}; $io->print( pack("NN", length $k, length $v).$k.$v ); } # wiederherstellen $io->seek(0,0); my %env = (); while( read($io, my $buffer, 8) ){ my ($klen, $vlen) = unpack "NN", $buffer; read($io, my $key, $klen); read($io, my $val, $vlen); $env{$key} = $val; } print Dumper \%env; Also immer abwechselnd die Stringlängen und dann die Strings -- einfach hintereinanderweg. MFG |