[Cascavel-pm] Dúvida iniciante listar subdiretórios

Gilmar Moretto gilmarmoretto.mp em gmail.com
Sexta Setembro 12 10:15:08 PDT 2008


Certo, vou dar uma olhada mais tarde. Por enquanto vou deixar a diversão
após o trabalho. Só que vou fazer da forma luzitana, não pretendo procurar
por módulos porque é para praticar mesmo.
Valeu pela dica!

2008/9/12 Eden Cardim <edencardim em gmail.com>

> 2008/9/12 gilmar <gilmarmoretto.mp em gmail.com>:
> >   Um bom dia a todos.
> >   Estou começando a aperender perl aos poucos e a mais ou menos, um mes e
> > por isso o meu problema pode ser até banal mas empaquei nele e não
> consigo
> > sair.
> >   Somente para treinar, comecei a fazer um script que possa listar todos
> os
> > diretórios e subdiretórios o qual consegui com uma certa facilidade. Mas
> > comecei a ver que seria um pouquinho mais complicado quando tivesse que
> > listar muitos níveis de subdiretórios, então pesquisando eu ví que a
> solução
> > poderia ser uma função que chamasse a sí mesma , listasse os subdirtórios
> e
> > entrasse dentro de cada um a procura de outros subdiretórios até achar
> > todos.
> >   O problema é que eu não consigo fazer isso e faz alguns dias que não
> > consigo nenhum avanço. Por isso estou colocando-o para que pudessem dar
> uma
> > olhada e me dar uma luz no que estou fazendo de errado.
>
> Muito bem, você acertou no projeto, porém tem um detalhe: uma função
> recursiva precisa, necessariamente, de argumentos para ser útil. Sua
> função precisa receber um argumento indicando qual diretório você quer
> listar, dessa listagem você pega os diretórios e invoca a função
> novamente, passando cada um dos diretórios por vez, algo assim:
>
> sub listar_diretorio {
>  my $dir = shift;
>  for my $arq (glob("$dir/*")) {
>    # ...
>    listar_diretorio($arq) if -d $arq;
>  }
> }
>
> listar_diretorio($inicial);
>
> no CPAN tem vários módulos que fazem isso (File::Next, Path::Class),
> sugiro a leitura dos fontes, será bastante instrutivo.
>
> --
> edenc.vox.com
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20080912/19473d9f/attachment.html>


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