Возможно ли как-то заставить его работать рекурсивно? 
Пока я сделал временный скрипт, но че-то он не хотит работать как надо, заходит в первый же подкаталог, там других каталогов нет, но после выхода из него дальше листинг каталогов уже не идет. Я так подозреваю что дело в chdir, но вроде сделал что при выходе из подкаталога текущий каталог снова сменяется на старый, все равно не помогает. Что не так?
sub ScanDirs {
    my ($path,$prev_path) = @_;
    opendir FDIR, $path;
    chdir $path;
    readdir FDIR; readdir FDIR;
    while (my $name = readdir FDIR) 
            {
            if (-d $name) 
                {
                ScanDirs($path.$name."/",$path);
                }
            }
    chdir $prev_path;	
    closedir FDIR;
    }
Дааа, и еще вопрос не в тему, когда я делаю use strict, то если переменная объявлена в другом файле, который я потом делаю require в основном скрипте, то при первом обращении к этой переменной выдается ошибка requires explicit package name, хотя переменная объявляется как надо - через my.