use FreezeThaw; my $stored = freeze (\$data, \@dataset, \%datagroup); print $stored; # even trickier encoding my @thawed = thaw $stored; my ($newdata, $newdataset_ref, $newdatagroup_ref) = @thawed; (*data, *dataset, *datagroup) = @thawed;