関係データベースのような本格的なデータベースのかわりに Perl の tie() をつかうと,簡易データベースを容易にあつかうことができる. つまり,tie() をつかうことによって Perl のハッシュを外部ファイルとむすびつけて,恒久的 (permanent) なものにすることができる. ただし,本格的なデータベースとはちがって並列にかきこんだりすることはできないし,性能もひくいとかんがえられる. したがって,プロトタイプには適するが実用には適さない.
一方,かんたんなデータベースのようなデータ群あるいはデータベースに登録するべきデータ群をつくるとき,Excel がよくつかわれる. そこで,Excel などでつくったデータを,たとえばタブくぎりのテキストとして出力して,それを Perl のデータベースにとりこみたくなる. そういうプログラムの例をしめす.
以下のプログラムでは,タブなどの空白文字でくぎられた 4 つのフィールドからなるレコードのならびを入力して,それを簡易データベースに登録する. このデータベースにおいては 4 つのフィールドのうちの最初のものをキーとして,あとの 3 つのフィールドを検索することができる. キーは一意でなければならない (一意性はここでは検査していない).
############################################################################
#
#	Text to DBM converter
#
############################################################################
use strict 'subs';
use strict 'refs';
use SDBM_File;
use Fcntl;
my $FileName = "C:\DB_File";
sub error($) {
    my ($message) = @_;
    print STDERR "Error: $message\n";
}
my %db;
tie(%db, 'SDBM_File', $FileName, O_RDWR | O_CREAT, 0666) ||
    error("Can't open database file!");
%db = ();
$| = 1;
print "Input file name: ";
my $file = <>;
chomp $file;
open(INPUT, $file);
while (<INPUT>) {
    if (/^(\w+)\s+(\w+)\s+(\w+)\s+(\w+)/) {
	my $A = $1;
	my $B = $2;
	my $C = $3;
	my $D = $4;
	print "A=${A} B=${B} C=${C} D=${D}\n";
	$db{A} = "${B}\t${C}\t${D}";
    } else {
	error("Syntax error: $_");
    };
};
untie(%db);
1;
                           
                            