• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DBM::Deepでの配列がうまく動作しない)

DBM::Deepでの配列がうまく動作しない

このQ&Aのポイント
  • DBM::Deepを使って配列を使おうとしていますが、正常に動作しません。
  • ループ処理がうまく行かず、値を列挙できません。
  • DBM::Deepの使い方に何か間違いがあるのかもしれません。

質問者が選んだベストアンサー

  • ベストアンサー
  • g_p_
  • ベストアンサー率53% (28/52)
回答No.2

連投すみません。 "自身"って...ほんと自信なくします。 あと、質問者さんのスクリプトはこちらではうまく動きました。 よって原因不明です。よく見もせずにすみませんでした。 ただ、インスタンスを捨ててしまっているので、データは保存されないのではないでしょうか?

azicyan
質問者

補足

すぐにお返事出来なくて申し訳ありませんでした。 いろいろ試してみたのですが、原因不明でした・・・ 調べている過程でStoreableというのを知りまして どうやらこちらの方が使いやすそうだったのでDBM::deepの使用はやめることにしました。 ご回答ありがとうございました。感謝です!

その他の回答 (1)

  • g_p_
  • ベストアンサー率53% (28/52)
回答No.1

こんにちは、 的を得ている自身はありませんが、 >tie @array, "DBM::Deep", "bar.db" ; # ★3 もしかして、インスタンスを捨ててしまっているからではないですか? 以下実験です。 #! perl use strict; use warnings; use DBM::Deep; use Data::Dumper; # my @array; my $db = tie @array, 'DBM::Deep', 'foo.db'; @array=(  [ "123" , "abc" ],  [ "456" , "def" ], ); print Dumper $_ for @array; undef $db; # my $db2 = DBM::Deep->new(  file => 'foo.db',  type => DBM::Deep->TYPE_ARRAY ); print Dumper $_ for @$db2; --- 実行結果 --- D:\>perl test.pl $VAR1 = bless( [   '123',   'abc' ], 'DBM::Deep::Array' ); $VAR1 = bless( [   '456',   'def' ], 'DBM::Deep::Array' ); $VAR1 = bless( [   '123',   'abc' ], 'DBM::Deep::Array' ); $VAR1 = bless( [   '456',   'def' ], 'DBM::Deep::Array' );

関連するQ&A