Beispiel: mkfiledb und findfile III

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

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

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

my $cmdname = $0; $cmdname =~ s{.*/}{};
my $usage = "Usage: $cmdname filename\n";
die $usage unless @ARGV == 1;
my $filename = shift;
my $home = $ENV{'HOME'};
my $database = "$home/.filedb";
die "$cmdname: no database found, call mkfiledb first.\n"
   unless -f $database;

my %db;
tie(%db, 'DB_File', $database, O_RDONLY, 0600, $DB_HASH);
if (defined $db{$filename}) {
   my(@paths) = split /\0/, $db{$filename};
   foreach my $path (@paths) {
      print $path, "/", $filename, "\n";
   }
} else {
   die "$cmdname: $filename not found\n";
}

 [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