[Cascavel-pm] Listando sub-diretorios ...

Frederico Recsky frederico em gmail.com
Terça Março 13 06:42:28 PDT 2007


Olá

On 3/12/07, Juliano Dantas <juliano.dantas em gmail.com> wrote:
> Caros colegas,
>
> criei o codigo abaixo, para coletar os nomes dos sub-diretorios existentes
> abaixo do diretorio principal, porém o mesmo não esta retornando esses
> valores.
> Algum colega poderia avaliar o meu codigo e indicar se existe algo errado ou
> uma sugestão para melhorar o codigo, fazendo com que, o mesmo funcione?

Na sua regex do grep tem um \.. esse segundo ponto pode ser qualquer coisa.

Olha so minha sugestão baseada no seu codigo, onde street e planet sao
diretorios.

frederico em guica:~/Perl$ cat xp.pl
$dir_orig = "/home/frederico/Perl";

opendir (DIR,"$dir_orig") or die "Nao foi possivel abrir o diretorio [
$dir_orig ]. Erro: $! \n";

     @subdir = grep { !/^[\.{1,2}]/  && -d "$dir_orig/$_"  } readdir(DIR);
     closedir DIR;

     foreach $subdir (@subdir)
 {
    print "diretorio: " . $subdir . "\n";
 }
frederico em guica:~/Perl$ ls
jogo.tar.bz2  planet  streets  xp.pl
frederico em guica:~/Perl$ perl xp.pl
diretorio: streets
diretorio: planet
frederico em guica:~/Perl$

já fiz bastantes scripts para descer em diretorios, para casos que o
modulo Find alguma coisa do cpan nao era funcional para mim, neste
caso eu ignoro os "." e ".." e por isso pus a exclamação. Se vc tirar
ele só vai imprimir pontos porque tem um E logico ali. Troca por OU e
tira a exclamação e vc tem os pontos .


-- 
____________________________
Frederico Recsky
Linux User: 253572
http://www.fre.eti.br
http://sao-paulo.pm.org/


Mais detalhes sobre a lista de discussão Cascavel-pm