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: [email protected]
L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer