47 lines
1.2 KiB
Perl
47 lines
1.2 KiB
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 "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); |