[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