Storable::nfreeze を使用してデータベースにハッシュを挿入したいのですが、データが正しく挿入されません。
私のコードは次のとおりです。
%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
次のエラーが表示されます。
blib/lib/Storable.pm (blib/lib/auto/Storable/thaw.al に自動分割) 415 行目 (v2.7) よりも新しい保存可能なバイナリ イメージ v36.65
エラーは、thaw
. はnfreeze
ハッシュを適切に保存しませんでした。
createOrder
サブルーチンで間違っていることを教えてもらえますか?
モジュールのバージョンが問題とは何の関係もないことはわかっています。