Perl - CPAN - Storableパッケージ

ここに掲載するものは、塚本さんにパッケージ化して頂いているZaurus用Perl 5.6.1に追加でインストールするPerlライブラリのStorableである。
ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。

download:lib-perl-storable_2.18-1_arm.ipk

手始めの使い方は以下の通りである。

# 簡易アドレス帳
# "reg<TAB>名前<TAB>〒<TAB>住所<TAB>TEL" で登録
# "show<TAB>名前" で表示(名前なしで全部)
# "clear<TAB>名前" で削除(名前なしで全部)

use Storable qw(store retrieve);

$fname = $0;
$fname =~ s/[^\/]+$//o;
$fname .= "addrbook";
$abp = (-f $fname) ? retrieve($fname) : {};
while (<>) {
    chomp;
    @parm = split(/\t/o);
    if ($parm[0] =~ /^reg$/io) {
        $abp->{$parm[1]} = {
            post => $parm[2],
            addr => $parm[3],
            tel => $parm[4],
        };
    } elsif ($parm[0] =~ /^show$/io) {
        @names = ($parm[1]) ? ($parm[1]) : keys(%$abp);
        foreach $name (@names) {
            if (defined($abp->{$name})) {
                print "name:", $name, "\n",
                      "post:", $abp->{$name}->{post}, "\n",
                      "addr:", $abp->{$name}->{addr}, "\n",
                      "tel:", $abp->{$name}->{tel}, "\n";
            }
        }
    } elsif ($parm[0] =~ /^clear$/io) {
        if ($parm[1]) {
            undef($abp->{$parm[1]});
        } else {
            $abp = {};
        }
    }
}
store($abp, 'addrbook');

Storableの詳細は以下をご覧頂きたい。

英語:http://search.cpan.org/~ams/Storable-2.18/Storable.pm
日本語:http://perldoc.jp/docs/modules/Storable-2.05/Storable.pod