use Storable qw( nfreeze thaw ); my $game_data = { score => 1425, hits => 3, name => "Supernova", accuracy => 0.34, : : }; my $enc = unpack "H*" => nfreeze ({ game_data => $game_data }); # $enc now contains something like # 05080300000001040300000004088300000004686974730a0953757065726e6f7661000000046e616d6509000005910000000573636f72650a04302e33340000000861636375726163790000000967616d655f64617461 #### use Storable qw( nfreeze thaw ); my $game_data = thaw (pack "H*" => $enc)->{game_data};