#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 "Cant open \"$database\" due to $!"; #The $mode value contains the file permissions used to create the DBM file if it doesnt exist. #When youre 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 "Cant open \"$directory\" due to $!."; @entries = readdir(DIR); closedir(DIR); @sorted = sort(@entries); print "Read $directory.\n"; $mode = 0666; dbmopen(%execs, $database, $mode) or die "Cant open \"$database\" due to $!"; foreach $entry (@sorted) { print "$entry\n"; $fullname = $directory . "/" . $entry; # Dont store if . or .. if ( ( -x $fullname ) && ( ! -d $fullname ) && ($entry !~ /^\./ ) ) { $execs{$entry} = $fullname; print "Storing $entry=$fullname\n"; } } dbmclose(%execs);