db.pl

30分シリーズ、その24。

DBを使ってみよう。SQLとかのデータベースとかじゃなくて、ローカルに保存しておける手軽なデータベース。

$ ls
db.pl
 
# keyにvalueを設定 
$ perl db.pl set key value
 
# dbというファイルに保存されている
$ ls
db.pl db
 
# 値の取得
$ perl db.pl get key
value
 
# 格納されている値一覧
$ perl db.pl list
key => value
 
# 削除
$ perl db.pl del key

$ perl db.pl list
#!/usr/bin/env perl
use strict;
use warnings;
use DB_File;
use Data::Dumper;
  
sub p(@){
    print Dumper(@_);
}
 
@ARGV > 0 or die 'too few arguments'; 
 
my $obj = tie my %db,'DB_File','db';
 
if($ARGV[0] eq 'set'){
    $db{$ARGV[1]} = $ARGV[2];
}elsif($ARGV[0] eq 'list'){
    print "$_ => $db{$_}\n" for (sort keys %db);
}elsif($ARGV[0] eq 'del'){
    delete $db{$ARGV[1]};
}elsif($ARGV[0] eq 'get'){
    print $db{$ARGV[1]},"\n";
}
  • 配列のリファレンスは格納できなかった
  • さすがに手軽です
  • タイ変数って、演算子オーバーロードしたクラスのようなものですよね?