1
我想使用Storable :: nfreeze在db中插入散列,但數據插入不正確。使用Stored :: nfreeze在Perl中存儲散列的問題
我的代碼如下:
%rec=();
$rec{'name'} = 'my name';
$rec{'address'} = 'my address';
my $order1 = new Order();
$order1->set_session(\%rec);
$self->createOrder($order1);
sub createOrder {
my $self = $_[0];
my $order = $_[1];
# Retrieve the fields to insert into the database.
my $st = $dbh->prepare("insert into order (session,.......) values(?,........)");
my $session = %{$order->get_session()};
$st->execute(&Storable::nfreeze(\%session),.....);
$st->finish();
}
sub getOrder
{
...
my $session = &Storable::thaw($ref->{'session'});
.....
}
,因爲我測試了它枝條已經正確地插入一些行的thaw
工作正常,但是當我試圖讓所有正在使用createOrder
子程序插入一個一行,我得到一個錯誤說:
可存儲二進制圖像v36.65更近的比我(V2.7)在BLIB/lib目錄/ Storable.pm(自動分割成BLIB/lib目錄/自動/存儲/解凍。 al)line 415
錯誤來自具有thaw
的行。 nfreeze
沒有正確存儲散列。
有人能指點我在01子程序中做錯了什麼嗎?
我知道模塊版本與問題無關。
@Sam =>你有一些沒有被接受的答案的開放式問題。假設有一個很好的答案,請單擊該答案旁邊的複選標記以將其標記爲已接受。 – 2010-04-16 14:53:59