Database Perl

#The dbmopen function associates a DBM database with a Perl hash or associative array. 
#The dbmopen function takes the following syntax: 
#dbmopen(%hash, $database, $mode) or die "Can’t open \"$database\" due to $!";
#The $mode value contains the file permissions used to create the DBM file if it doesn’t exist.
         
#When you’re done with a DBM database, call dbmclose to close it: 
#dbmclose(%hash)
#You pass the hash to dbmclose, not the database file name.
#!/usr/bin/perl -w
$directory = "db";
$database  = "mydb";
# Read directory.
opendir(DIR, $directory) or die
  "Can’t open \"$directory\" due to $!.";
  
@entries = readdir(DIR);
closedir(DIR);
@sorted = sort(@entries);
print "Read $directory.\n";
$mode = 0666;
dbmopen(%execs, $database, $mode) or die "Can’t open \"$database\" due to $!";
  
foreach $entry (@sorted) {
    print "$entry\n";
    $fullname = $directory . "/" . $entry;
    # Don’t store if . or ..
    if ( ( -x $fullname ) && 
         ( ! -d $fullname ) && 
         ($entry !~ /^\./ ) ) {
        $execs{$entry} = $fullname;
        print "Storing $entry=$fullname\n";
    }
}
dbmclose(%execs);