Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- use Data::Dumper;
- use Data::Hexdumper qw(hexdump);
- use bytes;
- sub _encode {
- my $arry = shift;
- my $bigblob = "";
- foreach my $i (0..$#{$arry}) {
- next unless defined $arry->[$i];
- my $elen = @{$arry->[$i]};
- next unless $elen;
- my $blob = pack ("C C/l", $i, @{$arry->[$i]});
- $bigblob .= $blob;
- }
- return $bigblob;
- }
- sub _decode {
- my $blob = shift;
- print hexdump($blob) . "\n";
- my @ret;
- my (@blobs) = unpack("C C/l a*", $blob);
- print hexdump($_) . "\n\n" foreach @blobs;
- while ($blob = pop @blobs) {
- print "----------------------\n";
- print hexdump($blob);
- my ($id,@values) = unpack("C C/l", $blob);
- $ret[$id] = \@values;
- print "ID: $id";
- print " Values:" , join(",", @values);
- print "\n";
- }
- return \@ret;
- }
- my $DATA = [
- #1:
- [1,2,3],
- [10,9,8],
- [42]
- ];
- print Dumper($DATA);
- print Dumper _decode(_encode($DATA));
Add Comment
Please, Sign In to add comment