[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