[Cascavel-pm] Res: Listar ultimos arquivos criados

Solli Honorio shonorio em gmail.com
Quarta Fevereiro 20 03:52:23 PST 2008


Em 18/02/08, Adriano Ferreira <a.r.ferreira em gmail.com> escreveu:
>
> 2008/2/18 Patty Silva <ptfzs em yahoo.com.br>:
> >
>
> > Ok.. Obrigada pela dica:
> > .
> > .
> > .
> > .
> >  my @files = grep -M > 2, readdir $dh;
> >
> >
> > closedir $dh;
> >
> >
> > for my $file ( @files ) {
> >      ......
> >      }
>
>
> Bonito código! Duas observações:
>
> * por estilo, talvez seja preferível marcar o bloco do 'grep'
> explicitamente - o que facilita a manutenção e evolução por outras
> pessoas (e inclusive por você daqui a uns tempos)
>
>      grep { -M < 2 } ...
>
> * Você pode-se livrar do opendir/readir/closedir através de um glob
>
>   my $glob = 'dir/*'
>   my @files = grep { -M > 2 } glob( $glob );


Só um detalhe, o glob é lento em relação ao opendir/readdir. No Benchmark
resultou em uma diferença considerável, veja o código e o resultado.

<codigo>
#!/usr/bin/perl
use strict;
use Benchmark;

Benchmark::cmpthese ( -1, {
    'Opendir' => 'opendir my $dh, "."; my @f = readdir($dh)',
    'Glob'    => 'my @f = glob("*")',
    }
);
</codigo>

<resultado>
          Rate    Glob Opendir
Glob    2074/s      --    -35%
Opendir 3195/s     54%      --
</resultado>

# tudo aqui continua como antes
>   for my $file ( @files ) {
>       ......
>       }
>
> Com a vantagem de que este código é mais geral porque o $glob pode
> incluir vários diretórios e trabalhar diferentes 'patterns' como:
>       my $glob = '{dir1,dir2}/*';
>       my $glob = 'dir/*/*.txt';
>
> e coisas assim.
>
> Atenção que o " glob( $glob ) " pode ser substituído pelo operator "
> <$glob> " mas não é recomendável pela mesma razão do bloco do grep sem
> as chaves: reduz a ambigüidade (confusão com o operador "readline":
> <$fh>) e melhora a legibilidade.
>
> Parabéns.
>
>
> >
> > ----- Mensagem original ----
> > De: Adriano Ferreira <a.r.ferreira em gmail.com>
> > Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
> > Enviadas: Segunda-feira, 18 de Fevereiro de 2008 16:51:24
> > Assunto: Re: [Cascavel-pm] Listar ultimos arquivos criados
> >
> >
> >
> > 2008/2/18 Patty Silva <ptfzs em yahoo.com.br>:
> > >
> > > Pessoal, estou usando o modulo use File::stat para retornar
> informacoes
> > dos
> > > arquivos..
> > > porem gostaria de recuperar os arquivos dos ultimos 2 dias??
> > > o stat me retorna nesse formato:Tue May 24 13:12:58 2005
> > >
> > > Alguem poderia me ajudar??
> >
> > Eu ia dizer:
> >
> > "Show us the code"
> >
> > Mas antes, pense nas respostas que você recebe da lista, respostas que
> > abreviam o problema ao mínimo necessário que no caso é "recuperar os
> > arquivos dos ultimos 2 dias". Portanto faça um esforço para expressar
> > em Perl pelo menos uma aproximação à solução que você quer e então
> > envie para a lista. Assim mais gente pode ler (porque o problema já
> > foi reduzido), e pode concentrar nos pontos de melhora, otimização,
> > estilo, etc. Você aprende em fazer e aprende ao receber as respostas.
> >
> > Dica: o operador -M, a função grep
> >
> > > Obrigada
> > >
> > >  ________________________________
> > > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> > > armazenamento!
> > > _______________________________________________
> > > Cascavel-pm mailing list
> > > Cascavel-pm em pm.org
> > > http://mail.pm.org/mailman/listinfo/cascavel-pm
> > >
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> >
> >
> >  ________________________________
> > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> > armazenamento!
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
"o animal satisfeito dorme". - Guimarães Rosa
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20080220/bba1a0ec/attachment.html 


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