Beispiel: mkfiledb und findfile

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

mkfiledb.pl
#!/usr/local/bin/perl -w

use Fcntl;
use IO::Dir;
use DB_File;
use strict;

my $home = $ENV{'HOME'};
my $database = "$home/.filedb";
my %db;
tie(%db, 'DB_File', $database, O_RDWR|O_CREAT|O_TRUNC,
    0600, $DB_HASH);
chdir($home) && descend(".");
untie %db;

*Problem: Suche aller Dateien eines vorgegebenen Namens im eigenen Dateibaum. Da der ziemlich umfangreich sein kann, ist es sinnvoll (z.B. nachts per Cron-Job) eine entsprechende Datenbank anzulegen (mkfiledb), die dann anschließend sehr effizient abgefragt werden kann (findfile).
 
*Zur Implementierung wird hier Sleepycat Software's Berkeley DB verwendet.
 
*$DB_HASH selektiert die Variante einer dynamischen Hash-Tabelle.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000