[SP-pm] Substituicoes com verificacao

Gabriel Vieira gabriel.vieira em gmail.com
Quinta Março 2 07:49:11 PST 2006


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! doce lar. Faça do Yahoo! sua homepage.
http://br.yahoo.com/homepageset.html

_______________________________________________
SaoPaulo-pm mailing list
SaoPaulo-pm em pm.org
http://mail.pm.org/mailman/listinfo/saopaulo-pm 



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