$|++; while (@INC) { my $dir = shift @INC; opendir(MODDIR, $dir) or die "opendir $dir: $!"; @allfiles = readdir MODDIR; foreach (@allfiles) { $file = "$dir/$_"; next if $_ eq '.' or $_ eq '..'; unshift @INC, $file if -d $file; print "$file\n" if $_ =~ m/\.pm$/; } closedir MODDIR; }