[SP-pm] Substituicoes com verificacao

Luis Motta Campos monsieur_champs em yahoo.com.br
Quinta Março 2 08:07:32 PST 2006


   Ah! Otimo! Alguem que pode rodar codigo!
   Testa, e manda o patch. A ideia basica estah aih.

Gabriel Vieira wrote:
> Não funcionou =x
> hehe
> 
> ----- Original Message ----- 
> From: "Luis Motta Campos" <monsieur_champs em yahoo.com.br>
> To: <saopaulo-pm em mail.pm.org>
> Sent: Thursday, March 02, 2006 12:20 PM
> Subject: Re: [SP-pm] Substituicoes com verificacao
> 
> 
>    Nossa, que complicado!
>    Basta assim:
> 
>    while( <FILE> ){
>      if( m/.{1,10}(\d+).{1,10}/ ){
>        print "Substituir (...)$`$&$'(...) por (...)$`<data>$&</data>$'?";
>        $answer = <>;
>        s/(\d+)/<data>\1</data>/ if $answer eq 's';
>      } # if
>    } # while
> 
> 
>    Mas isso eh LENTO.
> 
> Gabriel Vieira wrote:
> 
>>IIIIIIIIIIIIIIIIIIniciadoooo o Perl Golf!!!!!
>>
>>Gabriel já dispara comum programa bem configurável!!!!
>>
>>Valerá quem fizer o menor código com configurações iguais à disposta no
>>código a seguir e (codigo opcional) o menor codigo sem as configuracoes!!!
>>
>>--------8<--------
>># frase a ser trabalhada
>>my $frase = "Em 2002, o Brasil ganhou a copa com 2 gols apos 9980 rezas!
>>:)";
>># quantidade de digitos do conjunto a ser trabalho
>>my $dig = 4;
>># mínimo de caracteres antes e depois
>>my $aed = 10;
>># tags para 'cobrir' os digitos solicitados
>>my %c = (a => "<data>",f => "</data>");
>>
>>$frase =~ s/(\d{$dig})/&x($1)/eg;
>>print $frase;
>>
>>sub x{
>> my $z = $_[0];
>> my $x = pos $frase;
>> my $w = $aed;
>> my $y = $x - $w;
>> $y = 0, $w = $x if $y < 0;
>> my $a = substr($frase,$y,$w);
>> my $b = substr($frase,$x+$dig,$aed);
>> print $a.$z.$b." => ".$a.$c{a}.$z.$c{f}.$b;
>> print "\nSubstituir? (s/n) ";
>> chomp(my $j = <STDIN>);
>> $j =~ /^s$/i?$c{a}.$z.$c{f}:$z;
>>}
>>--------8<---------
> 
> 
> 


-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Motta Campos is Software Engineer, Oracle OCP/DBA, Un*x
  Sysadmin, Member of {Lisbon,São Paulo,Cascavel,Brasil,London}
  Perl Mongers and Perl Fanatic Evangelist
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

		
_______________________________________________________
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
http://br.acesso.yahoo.com


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