14.3 異なるDBMファイルに変換する
- DBMファイルからキーと値を読み取り、それらを異なるDBMフォーマットの新しいファイルに書き込む
#!/usr/bin/perl -w # db2gdbm: DBをGDBMに変換する use strict; use DB_File; use GDBM_File; unless (@ARGV == 2) { die "Usage: db2gdbm infile outfile\n"; } my ($infile, $outfile) = @ARGV; my (%db_in, %db_out); # 2つのファイルを開く tie(%db_in, 'DB_File', $infile) or die "Can't tie $infile: $!"; tie(%db_out, 'GDBM_File', $outfile, GDBM_WRCREAT, 0666) or die "Can't tie $outfile: $!"; # コピーする(ただし、%db_out = %db_in は低速なので、使用しない) while (my($k, $v) = each %db_in) { $db_out{$k} = $v; } # 以下のuntieはプログラム終了時に自動的に実行される。 untie %db_in; untie %db_out;