[Rio-pm] [Passatempo] Interpretador para BrainFuck

Andre Carneiro andregarciacarneiro em gmail.com
Quinta Dezembro 13 03:36:04 PST 2012


Meio estranho você não entender when e entender given, mas vamos lá!
Normalmente eu mandaria um RTFM, mas já estou velho e manso ultimamente...

given é equivalente a 'switch'

when é equivalente a 'case'

Então, se você estiver usando Perl 5.10 ainda,

<code>
use feature qw/switch say/; #Isso sim, é escroto pra caramba! Se a função
chama-se 'given', pra que mudar o nome para switch???
use strict;
use warnings;
#Ou dane-se tudo isso e faça 'use common::sense';


my $var = 'Carneirao';

given($var){
   when( 'Carneirao'){
       say "Opa, sou eu!";
   }
   when(/Sbrebows/){
      say 'WTF???';
   }
   default {
      say "Nao sei o que quer dizer...";
   }
}

#Antigamente fazíamos assim:

use Switch;


switch($var){
     case 'Carneirao' { say "Opa, sou eu!";}
     case /Sbrebows/ {say "WTF";}
     else { say "Nao sei o que quer dizer";}
}


#Mas, do Perl 5.10 em diante, o módulo Switch está com status
 'deprecated', então use a primeira opção!

</code>


Agora sim! Para mais informações RTFM my friend!!!


http://perldoc.perl.org/Switch.html

http://perldoc.perl.org/perlsyn.html#Switch-Statements


:-)
Cheers!




2012/12/13 breno <breno em rio.pm.org>

> 2012/12/12 Aureliano Guedes <guedes_1000 em hotmail.com>:
> > Ainda não tinha me aventurado nas novidades do Perl 5.16.
> >
> > o when eu entendi, mas o given não, alguem poderia me explicar o uso do
> > given??
> >
> > O break ja funciona no 5.16?? se sim, como???
> >
>
> given/when existe no Perl desde a versão 5.10, com direito a default,
> continue e break =)
>
> Pra saber como, dá uma olhada aqui ó:
>
> http://perldoc.perl.org/perlsyn.html#Switch-Statements
>
> tem tudo explicadinho, inclusive o fato de que given() é experimental
> - a forma recomendada de definir o tópico é com for().
>
> Boa diversão!
>
> []s
>
> -b
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
André Garcia Carneiro
Software Engineer
(11)982907780
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20121213/aaab4690/attachment.html>


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