आप किसी भी ज्ञात धारावाहिकों का उपयोग कर सकते हैं, उदा। JSON::XS या Storable। 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;
मैंने कोशिश की लेकिन मुझे नीचे दी गई त्रुटि मिल रही है: बिना किसी संदर्भ के विधि "nfreeze" को कॉल नहीं कर सकता – smith
क्या आप विधि 'nfreeze' आयात करते हैं? 'स्टेरियल क्यूड (एनफ्रीज़)' का उपयोग करें या विधि का एक पूर्ण निर्दिष्ट नाम लिखें: 'स्टेलेबल :: एनफ्रीज़ ($ डेटा) '। – Ali
आप सही हैं धन्यवाद, मॉड्यूल क्या है जो gzip को डिकंप्रेस करता है? – smith