Итак, я новичок в Perl, и я обнаружил, что хотел запрограммировать обратный отсчет и действительно боролся, я нашел здесь код http://www.perlmonks.org/bare/?node_id=407922 и попытался выяснить, что происходит, но не удалось частично.Perl: Countdown
Проблема в том, я ненавижу, используя код, который я не понимаю, так надеялся, что кто-то сможет мне помочь с некоторыми его частями (код ниже от URL)
use 5.16.3;
use strict;
my $countdown = 1*60*60; # in seconds
$| = 1;
my $beginTime = time;
my $endTime = $beginTime + $countdown;
for (;;)
{
my $time = time;
last if ($time >= $endTime);
printf("\r%02d:%02d:%02d",
($endTime - $time)/(60*60),
($endTime - $time)/( 60) % 60,
($endTime - $time) % 60,
);
sleep(1);
}
Ниже я пронумерован и воспроизводящие строки кода, где я их не понимаю
1: 1*60*60
Я понимаю 60 * 60, но почему 1?
2: $| = 1;
Понятия не имею на это
3: for(;;)
Не уверен в том, что ;;
делают?
4: Не знаю, что это делает? (Математически или синтаксически).
printf("\r%02d:%02d:%02d",
($endTime - $time)/(60*60),
($endTime - $time)/( 60) % 60,
($endTime - $time) % 60,
Спасибо за любую помощь или (попытался это уже без толку) полезно URL, где я мог бы исследовать сам
1. 1 легко изменена в другое количество часов 2. perldoc perlvar 3. же, как 'в то время как (1) {}' 4. perldoc - f printf, '\ r' перемещает курсор в начало строки, готовящей перезаписывать старый контент. –
Спасибо, напишите как ответ, и я могу отметить его как ответ – user3001499