pack/unpack関数を用いてデータをバイナリ直列化してみるメモ

PHP

<?php
    $data = unpack('H*', serialize(array('ほげ')));
    var_dump(pack('H*', $data[1]));
    // unserialize(pack('H*', $data[1]));
?>

Perl

use strict;
use warnings;
use Storable qw/nfreeze thaw/;

my @ar = qw/hoge fuga foobar/;

my $data1 = unpack('H*', nfreeze(\@ar));
my @data2 = @{thaw(pack('H*', $data1))};

print @data2;

Ruby

ar = %w/hoge fuga foobar/

data = Marshal.dump(ar).unpack('H*')

p Marshal.load(data.pack('H*'))