[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