Obrigado pelas respostas. Dei uma lida nas manpages perlsyn e na
documentação do "do" e agora consigo explicar melhor o motivo da minha
confusão:
Acho que dá para enxergar a situação de duas maneiras diferentes:
1) Ou vc encara como se só existisse uma estrutura de controle:
INSTRUÇÃO while CONDIÇÃO;
que executa *apenas* se a CONDIÇÃO for verdadeira. Com a *exceção*, ou
caso especial, de que se a INSTRUÇÃO for um "do { ... }" então executa
pelo menos uma vez independente se a CONDIÇÃO for verdadeira ou não.
2) Ou vc encara como se existissem duas estruturas de controle *distintas*:
INSTRUÇÃO while CONDIÇÃO; # que funciona conforme o esperado
do { INSTRUÇÕES } while CONDIÇÃO; # que funciona como a linguagem C
=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