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...<br><div><br></div><div>given é equivalente a 'switch'</div><div><br></div>
<div>when é equivalente a 'case'</div><div><br></div><div>Então, se você estiver usando Perl 5.10 ainda,</div><div><br></div><div><code></div><div>use feature qw/switch say/; #Isso sim, é escroto pra caramba! Se a função chama-se 'given', pra que mudar o nome para switch??? </div>
<div>use strict;</div><div>use warnings;</div><div>#Ou dane-se tudo isso e faça 'use common::sense';</div><div><br></div><div><br></div><div>my $var = 'Carneirao';</div><div><br></div><div>given($var){</div>
<div>   when( 'Carneirao'){</div><div>       say "Opa, sou eu!";</div><div>   }</div><div>   when(/Sbrebows/){</div><div>      say 'WTF???';</div><div>   }</div><div>   default {</div><div>      say "Nao sei o que quer dizer...";</div>
<div>   }</div><div>}</div><div><br></div><div>#Antigamente fazíamos assim:</div><div><br></div><div>use Switch;</div><div><br></div><div><br></div><div>switch($var){</div><div>     case 'Carneirao' { say "Opa, sou eu!";}</div>
<div>     case /Sbrebows/ {say "WTF";}</div><div>     else { say "Nao sei o que quer dizer";}</div><div>}</div><div><br></div><div><br></div><div>#Mas, do Perl 5.10 em diante, o módulo Switch está com status  'deprecated', então use a primeira opção!</div>
<div><br></div><div></code></div><div><br></div><div><br><div><div>Agora sim! Para mais informações RTFM my friend!!!</div><div><br></div><div><br></div><div><a href="http://perldoc.perl.org/Switch.html">http://perldoc.perl.org/Switch.html</a></div>
<div><br></div><div><a href="http://perldoc.perl.org/perlsyn.html#Switch-Statements">http://perldoc.perl.org/perlsyn.html#Switch-Statements</a></div><div><br></div><div><br></div><div>:-)</div><div>Cheers!</div><div><br></div>
<div><br></div><div><br><br><div class="gmail_quote">2012/12/13 breno <span dir="ltr"><<a href="mailto:breno@rio.pm.org" target="_blank">breno@rio.pm.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2012/12/12 Aureliano Guedes <<a href="mailto:guedes_1000@hotmail.com">guedes_1000@hotmail.com</a>>:<br>
<div class="im">> Ainda não tinha me aventurado nas novidades do Perl 5.16.<br>
><br>
> o when eu entendi, mas o given não, alguem poderia me explicar o uso do<br>
> given??<br>
><br>
> O break ja funciona no 5.16?? se sim, como???<br>
><br>
<br>
</div>given/when existe no Perl desde a versão 5.10, com direito a default,<br>
continue e break =)<br>
<br>
Pra saber como, dá uma olhada aqui ó:<br>
<br>
<a href="http://perldoc.perl.org/perlsyn.html#Switch-Statements" target="_blank">http://perldoc.perl.org/perlsyn.html#Switch-Statements</a><br>
<br>
tem tudo explicadinho, inclusive o fato de que given() é experimental<br>
- a forma recomendada de definir o tópico é com for().<br>
<br>
Boa diversão!<br>
<br>
[]s<br>
<span class="HOEnZb"><font color="#888888"><br>
-b<br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>André Garcia Carneiro<br>Software Engineer<br>(11)982907780<br>
</div></div></div>