Perl の Storable モジュールのメモ
2006-05-09-2
[Programming]
Perl の Storable モジュールでちょっとだけ複雑なデータを扱うときの自分用 SYNOPSIS。参考「続・初めての Perl」[2006-05-09-1]。
Storable で保存したデータって、作成したスクリプトがないと復元方法が分からなくて後から困るんだろうなあ、と思っていたけど、もちろんそんなことはなく、普通に読み込んで Data::Dumper で出力すれば良いだけだった (p.65)。
追記060511:
- 404 Blog Not Found:perl - 勝手に添削 - Storable
http://blog.livedoor.jp/dankogai/archives/50490051.html
ありがとうございます。これに基づき上のソースを変更しました。
変更した箇所のもとの記述は以下でした:
#!/usr/bin/perl use strict; use warnings; use Storable qw(nstore retrieve); my ($first, $second); $first->{uhyo} = { 'abc' => 123, 'xyz' => 9, }; $first->{hogera} = { 'AAAAA' => [1, 2, 3], 'ABCDEF' => [60,1], 'W002' => [9, 1, 2], }; test_print($first); nstore [ $first->{uhyo}, $first->{hogera} ], "a.dat"; ($second->{uhyo}, $second->{hogera}) = @{retrieve "a.dat"}; test_print($second); sub test_print { my ($ref) = @_; while (my ($key, $value) = each %{$ref->{uhyo}}) { print "1: $key => $value\n"; } while (my ($key, $value) = each %{$ref->{hogera}}) { print "2: $key => @$value\n"; } }
Storable で保存したデータって、作成したスクリプトがないと復元方法が分からなくて後から困るんだろうなあ、と思っていたけど、もちろんそんなことはなく、普通に読み込んで Data::Dumper で出力すれば良いだけだった (p.65)。
perl -MStorable -MData::Dumper -e 'print Dumper(retrieve shift)' a.dat
追記060511:
- 404 Blog Not Found:perl - 勝手に添削 - Storable
http://blog.livedoor.jp/dankogai/archives/50490051.html
Always use nstore and nfreeze instead of store and freeze.おお、なるほど! これでエンディアンで悩まされなくて済むわけですね。
常にnstoreとnfreezeを使う事。storeとfreezeではなく。
ありがとうございます。これに基づき上のソースを変更しました。
変更した箇所のもとの記述は以下でした:
use Storable;
store [ $first->{uhyo}, $first->{hogera} ], "a.dat";
この記事に言及しているこのブログ内の記事