14.5 大規模なDBMファイルをソートする

  • DB_FileのBツリーバインドを機能を使用して、自分で独自に作成した比較関数を指定する。
use DB_File;

# エクスポートされた$DB_BTREEハッシュリファレンスを使用して
# キーの比較を行うPerlのサブルーチンを指定する
$DB_BTREE->{'compare'} = sub {
  my ($key1, $key2) = @_;
  "\L$key1" cmp "\L$key2";
};

tie(%hash, "DB_File", $filename, O_RDWR|O_CREAT, 0666, $DB_BTREE)
  or die "Can't tie $filename: $!";