Dzisiaj w mojej szkole nauczyciel zadał mi pytanie. Napisał ten kod na papierze i powiedział: "Jaki będzie wynik tego kodu?"Dlaczego nie drukuje się niczego na każdej iteracji pętli, kiedy używam trybu uśpienia?
use warnings;
for (1 .. 20)
{
print ".";
}
Okazało się, że jest łatwy i że nie będzie pętli 20 razy, a w każdej iteracji będzie drukowania kropek (.), A zatem ogółem 20 punktów będzie wyjściowego.
Powiedział, że masz rację, a następnie wprowadził pewne zmiany w kodzie. Kod był:
use warnings;
for (1 .. 20)
{
print ".";
sleep 1;
}
Powiedział, co będzie teraz wyjście? Nie wiedziałem o funkcji spania, domyśliłem się, że przy każdej iteracji będzie drukować kropkę (.), A następnie będzie czekać 1 sekundę (ze względu na funkcję spania), a następnie ponownie będzie iterować, a następnie znowu będzie wydrukuj (.) wtedy poczeka na 1 sekundę i tak dalej ...
Nauczyciel kazał mi sprawdzić to w domu. Próbowałem go w domu i dowiedziałem się, że drugi kod czeka 20 sekund, a następnie drukuje wszystkie kropki (20 kropek) na raz. Chcę wiedzieć, jak to się stało? Dlaczego kropka (.) Nie jest drukowana na każdej iteracji?
Dzięki za odesłanie artykułu. :) –
'$ | -" przełącza wartość pomiędzy '0' i' 1', a '$ | ++' ustawia '$ |' na '1' (nawet jeśli poprzedza ją' $ | = -1; '). Rzeczywiście zniechęcam do korzystania z takich niejasnych funkcji. – ikegami