[Rio-pm] Hashes que referenciam (arrays variáveis?)

Solli Honorio shonorio em gmail.com
Sexta Setembro 12 08:03:33 PDT 2008


Grande pequeno gafanhoto Samir, este teu código está estranho... mas vou
pular estar parte e  vamos para o trabalho verdadeiro.. utilize o
'File::Find', a documentação é boa e tem uma caminhão de outros exemplos na
internet !!!

Agora sobre o código :


2008/9/12 Samir Cury <rimasy em gmail.com>

> Então galera, meu problema é o seguinte, relacionar uma árvore de
> diretórios (no final cada arquivo) ao seu full path que seria a chave do
> hash, o conteúdo seria o tamanho.
>
> Beleza, o du -ha me ajudaria nisso, mas ele não funciona no fs que estou
> usando, apenas ls -laR
>
> Então o que pensei:
>
> #!/usr/bin/perl
> use diagnostics;
>
> @list=`ls -lhR /pnfs/`;
>

evite isto, pelos motivos :
1o. é difícil de ler, prefira qx/ls.../;
2o. não coloque o retorno todo numa array, você está consumindo muito
recurso de memoria, prefira:
<code>
open my $cmd_ls q[ls -lhR /pnfs/ |]
while (my $linha = <$cmd_ls> ) {
  ...
}
</code>



>
> foreach my $i(@list){
> #acha os diretórios que conterão os arquivos, e filtra seu nome para
> associar aos
> #arquivos
>         if ($i =~ /\:/)
>                 {
>                 chomp $i;
>                 %directories{$i}=
>                 }
>         }
>


Bom aqui tem uma problema grave e que vai gerar uma confusão boa, pelo
seguinte:
1o. Você precisa criar dois fluxo de tratamento, um quando é o nome do
diretório e outro quando é o nome do arquivo. E isto não é tão trivial fazer
isto de maneira robusta.
2o. a tua regex vai quebrar fácil se alguém criar um arquivo com nome ':'.

Então cara eu sugiro utilizar o File::Find !




>
>
> e cada por exemplo %directories{/pnfs/home/users/samir}  referenciaria um
> array dos arquivos que ele contém
>
> qualquer sugestão de como fazer o nome do array variar a cada iteração é
> bem-vinda, ou talvez uma maneira mais inteligente de resolver o problema,
> sempre tem, mas às vezes não enxergo
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
"o animal satisfeito dorme". - Guimarães Rosa
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20080912/9ffd2e17/attachment-0001.html>


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