[SP-pm] Comportamento do do-while
Renato Santos
renato.cron at gmail.com
Mon Jul 4 07:36:29 PDT 2011
do {} vai criar um bloco
mais precisamente, fazer, depois testar o resultado.
do {} while no perl é feito para fazer igual Repeat ~ Until do delphi.
Como while não é uma condicional, o comando esta certo!
Eu chamo isso de "bate depois pergunta"
Pois se fosse
while ( 0 ) { do { ... } } primeiro ia perguntar depois bater!
2011/7/4 Lucas Buchala <lucasbuchala at gmail.com>
> Eu sempre achei que onde eu tivesse uma única instrução, eu poderia
> substituir a instrução por um bloco "do { ... }" e a lógica ficaria
> sempre a mesma.
>
> Mas agora vi esse exemplo do comportamento bizarro do do-while:
>
> -----------------------------------------------------
> $ perl -E 'say "hello" while 0'
> (Não imprime nada)
>
> $ perl -E 'do { say "hello" } while 0'
> hello
> -----------------------------------------------------
>
> Com uma única instrução, o while (falso) NÃO executa nenhuma vez, o
> que já era esperado.
> Mas com um bloco "do", o while (falso) executa uma vez.
> Qual o "rationale" aqui? Apenas para igualar o comportamento do
> do-while da linguagem C, de executar pelo menos uma vez? Na minha
> opinião, esse design ficou meio inconsistente... :-(
> =begin disclaimer
> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
--
Renato Santos
http://www.renatocron.com/blog/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110704/85d02869/attachment.html>
More information about the SaoPaulo-pm
mailing list