Por que não imprime nada em cada iteração de um loop quando uso suspensã
oje, na minha faculdade, um professor me fez uma pergunta. Ele escreveu esse código no papel e disse: "Qual será a saída desse código?"
use warnings;
for (1 .. 20)
{
print ".";
}
Achei fácil e disse que ele repetiria 20 vezes e, a cada iteração, imprimiria um ponto (.) E, portanto, um total de 20 pontos será a saíd
Ele disse que você está certo e, em seguida, ele fez algumas alterações no código. O código era:
use warnings;
for (1 .. 20)
{
print ".";
sleep 1;
}
Ele disse o que será a saída agora? Eu não sabia sobre a função dormir, imaginei que, a cada iteração, imprimiria o ponto (.) E esperaria 1 segundo (por causa da função dormir) e, novamente, iteraria e, novamente, print (.), aguarde 1 segundo e assim por diante ...
O professor me disse para verificar em casa. Eu tentei em casa e soube que o segundo código aguarda 20 segundos e depois imprime todos os pontos (20 pontos) de uma só vez. Eu quero saber como isso aconteceu? Por que o ponto (.) Não está sendo impresso em cada iteração?