• 締切済み

Storableによる永続化

以下のように、Storableの「store」と「retrieve」を使用して、Bit::Vectorクラスのデータを永続化しようとしています。 すると「Bit::Vector::to_Bin(): item is not a "Bit::Vector" object」とエラーになります。 多分、 @{$array_ref}[$i] をblessしてあげれば良いのではと思うのですが、なかなか上手くいきません。 どなたか、解決方法をご存知の方、いらっしゃいませんでしょうか? 1 use Storable; 2 use Bit::Vector; 3 4 for($i = 0; $i < 3; $i++) { 5 $array[$i] = Bit::Vector->new(20); 6 $array[$i]->Flip(); 7 print $array[$i]->to_Bin(), "\n"; 8 } 9 10 store(\@array, 'store.bin') or die; 11 $array_ref = retrieve('store.bin'); 12 13 for($i = 0; $i < 3; $i++) { 14 print @{$array_ref}[$i]->to_Bin(), "\n"; 15 }

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

単純に to_Hex, from_Hex (あるいは、new_Hex)でファイル出力、ファイル入力から作成でいいような気がします。

iamara
質問者

お礼

連絡が遅くなり大変申し訳ありません。 確かに「to_Hex」, 「from_Hex」でも同じことですが、内部的にBit::Vector->new()する分、スピードが遅いような気がしています。

関連するQ&A

専門家に質問してみよう