Вы можете использовать любой из известных сериализаторов, например, JSON :: XS или Хранится .
Storable
лучше, если вы хотите получать ссылки как ссылки, а не как копии значений. Затем сохраните сериализованный объект в поле любого типа (VARCHAR, BLOB, ...), которое удовлетворяет требованиям хранения.
use Storable qw(nfreeze thaw);
use DBI;
# ... connect to database
# Store
my $data = [ [$a, $b, $c ], [ $a, $b, $c ] ];
my $bytestream = nfreeze $data;
$dbh->do('insert into table (field) values(?)', undef, $bytestream);
# Retrieve
$bytestream = $dbh->selectrow_array('select field from table where ...');
$data = thaw $bytestream;
Кроме того, вы можете сжать $bytestream
, например, через IO::Compress::Gzip
my $bytestream = gzip nfreeze $data;