[Rio-pm] Mais um membro

Fernando Oliveira fernandocorrea em gmail.com
Quarta Junho 18 11:34:13 PDT 2008


Mas o q vc quer no metodo procura é achar os arquivos q contenham uma certa
string
e q tenham o mtime maior q $MTime, né?!

Eu proponho a todos um golf!
esquecendo OO e o resto...
minha primeira tacada:

perl -nE'BEGIN{$MTime=0;$string="teste"}say$ARGV if/$string/&&(stat
ARGV)[9]>$MTime' /dir/*

2008/6/18 Fernando Oliveira <fernandocorrea em gmail.com>:

>
>
> 2008/6/18 Raphael Carpi <raphael.carpi em gmail.com>:
>
>> segue comentario com ###
>>
>> 2008/6/18 Fernando Oliveira <fernandocorrea em gmail.com>:
>>
>>>
>>>
>>> 2008/6/18 Raphael Carpi <raphael.carpi em gmail.com>:
>>>
>>>  valeu cara
>>>>
>>>> então to engatinhando no perl e to com uma duvida
>>>>
>>>> não consigo dar o printif de um metodo que é alimentada por uma variavel
>>>>
>>>>
>>>>
>>>>  package FSP_FIND;
>>>>  sub new{
>>>>  my($class) = @_;
>>>>  my $self = {
>>>>   _diretorio => undef,
>>>>   _arquivo => undef,
>>>>   _string  => undef
>>>>  };
>>>>  bless $self, $class;
>>>>  return $self;
>>>>  }
>>>> sub diretorio {
>>>>     my($self, $diretorio) = @_;
>>>>     $self->{_diretorio} = $diretorio if defined($diretorio);
>>>>     return $self->{_diretorio};
>>>> }
>>>> sub arquivo {
>>>>     my($self, $arquivo) = @_;
>>>>     $self->{_arquivo} = $arquivo if defined($arquivo);
>>>>     return $self->{_arquivo};
>>>> }
>>>> sub string {
>>>>     my($self, $string) = @_;
>>>>     $self->{_string} = $string if defined($string);
>>>>     return $self->{_string};
>>>> }
>>>>  sub FUNUNCIA{
>>>>     my ($self) = @_;
>>>>  $self->arquivo('nome do arquivo');
>>>>     printf( "Arquivo:%s \n", $self->arquivo);
>>>>
>>> # Aqui, no mesmo metodo vc seta o argumento e o usa, então qdo vai
>>> usa-lo, ele já existe, é igual a 'nome do arquivo'
>>>
>>>>
>>>> }
>>>>  sub procura {
>>>>     my ($self) = @_;
>>>>  my $file = "";
>>>>
>>>>  %mtime = ();
>>>>  printf( "Diretorio:%s\n",  $self->diretorio );
>>>>
>>>>  my $mtMax = 0;
>>>>  opendir(DIR,$self->diretorio);
>>>>  while($file=readdir(DIR))
>>>>  {
>>>>     next if (-d $file);
>>>>     @tmp = ();
>>>>     open(FILE,$file);
>>>>     while(<FILE>)
>>>>     {
>>>>     if ($_ =~ /$self->string/)
>>>>     {
>>>>      $mt = (stat($file))[9];
>>>>      if ($mt > $mtMax) {
>>>>       $self->arquivo($file);
>>>>
>>>  ### Então o arquivo estaria sendo setado aqui e passado o parametro
>> $file para ele, isso que não consegui entender quando seto o atribulto com
>> variaveis internas ele retorna mas quando coloco uma variavel que é gerada
>> pelo codigo ele não retorna
>>
> # o q vc quer dizer com "variavel que é gerada pelo codigo"?
>
>>
>>>>       $mtMax = $mt;
>>>>      }
>>>>      last;
>>>>     }
>>>>     }
>>>>     close FILE;
>>>>  }
>>>>  closedir DIR;
>>>>  printf( "Diretorio:%s\n",  $self->arquivo );
>>>>
>>> # vc está imprimindo o metodo arquivo do próprio obj, o atributo _arquivo
>>> foi setado?
>>> #diferente do outro metodo, vc não está setando o nome do arquivo, vc
>>> está fazendo isso no resto do código?
>>>
>>>>
>>>> }
>>>> return(1);
>>>>
>>>>
>>>> o metodo "FUNUNCIA" funciona mas o metodo "procura" não
>>>>
>>>> []´s galera
>>>>
>>>>
>>> Como é o programa q instancia e usa esse  obj?
>>>
>> ### esse é o pl que chama a packege
>>                #!/usr/bin/perl
>>                use FSP_FIND;
>>                my $variavel = FSP_FIND->new(); # seria melhor
>>                $variavel->diretorio('\\\\servidor\\arquivos');
>>                $variavel->string('cade o texto');
>>                $variavel->procura();
>>
>>>
>>>   O $file esta sendo zerado dentro do procura(), mesmo se não estivesse,
> no su pl vc não seta o arquivo só o dir e a string...
>
>>
>>>>
>>>> 2008/6/18 Fernando Oliveira <fernandocorrea em gmail.com>:
>>>>
>>>>>  Deem as boas vindas ao Raphael, o 2o a entrar na lista no dia de hj!
>>>>> Raphael, sinta-se em casa, e fique sabendo que temos Encontros
>>>>> Sociais (ES) toda segunda 5ª feira do mes (tivemos o último no dia
>>>>> 12!),
>>>>> e Encontros Tecnicos (ET), o proximo ainda sem data prevista.
>>>>> E já foi marcado o proximo ESX (Encontro Social eXtra) para essa
>>>>> proxima 3a feira, na tijuca no Olimpiadas do Chopp, esperamos vc lá!
>>>>> Vc tb pode usar o calendario público do brasil.pm  <http://brasil.pm/>para
>>>>> ficar sabendo
>>>>> dos eventos do rio.pm ( <http://brasil.pm/>http://www.google.com/
>>>>> calendar/embed?src=0s81gpplpi9virbej7u9n1ln1c%40group.calendar
>>>>> .google.com&ctz=America%2FSao_Paulo) <http://brasil.pm/>
>>>>>
>>>>> Eu sou muito curioso, então poderia, por favor, nos dizer onde vc usa
>>>>> perl e como descobriu a lista?
>>>>>
>>>>> --
>>>>> Just another Perl Hacker,
>>>>> Fernando (SmokeMachine)
>>>>> http://perl-e.org
>>>>> _______________________________________________
>>>>> Rio-pm mailing list
>>>>> Rio-pm em pm.org
>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Rio-pm mailing list
>>>> Rio-pm em pm.org
>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>
>>>
>>>
>>>
>>> --
>>> Just another Perl Hacker,
>>> Fernando (SmokeMachine)
>>> http://perl-e.org
>>>
>>> _______________________________________________
>>> Rio-pm mailing list
>>> Rio-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
>
> --
> Just another Perl Hacker,
> Fernando (SmokeMachine)
> http://perl-e.org
>



-- 
Just another Perl Hacker,
Fernando (SmokeMachine)
http://perl-e.org
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/rio-pm/attachments/20080618/77d421cb/attachment.html 


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