#!/usr/bin/perl # # Build a database linking filenames to their numerical representations # using a keypad for the DialAnMp3 application # $mp3dir="/usr/media/mpeg3"; dbmopen(%DIGITS, "/var/lib/asterisk/mp3list", 0644) || die("Unable to open mp3list");; sub process_dir { my ($dir) = @_; my $file; my $digits; my @entries; opendir(DIR, $dir); @entries = readdir(DIR); closedir(DIR); foreach $_ (@entries) { if (!/^\./) { $file = "$dir/$_"; if (-d "$file") { process_dir("$file"); } else { $digits = $_; $digits =~ s/[^ \w]+//g; $digits =~ s/\_/ /g; $digits =~ tr/[a-z]/[A-Z]/; $digits =~ tr/[A-C]/2/; $digits =~ tr/[D-F]/3/; $digits =~ tr/[G-I]/4/; $digits =~ tr/[J-L]/5/; $digits =~ tr/[M-O]/6/; $digits =~ tr/[P-S]/7/; $digits =~ tr/[T-V]/8/; $digits =~ tr/[W-Z]/9/; $digits =~ s/\s+/ /; print "File: $file, digits: $digits\n"; $DIGITS{$file} = $digits; } } } } process_dir($mp3dir);