use CGI qw(:all); use strict; print header; my $mp3dir="C:\\My Documents\\My Music"; #change this to your filedir my @subs=&findfiles($mp3dir); sub findfiles { my ($currdir)=@_; opendir(MP3ROOTDIR, $currdir); my @allfiles=grep(!/^\.\.?$/, readdir MP3ROOTDIR); closedir(MP3ROOTDIR); my @subdirs=grep(!/.*\..*/, @allfiles); my @rootfiles=grep(/.*\.mp3/i, @allfiles); #change extension to whatever you want... $currdir=~/^.*\\(.*)$/; print "$1"; foreach (@rootfiles) { my $file=substr($_, 0, -4); #cuts the .mp3 extension... print " $file <\/a>

"; } foreach (@subdirs) { &findfiles("$currdir\\$_"); } return @subdirs; }