Metronome: Difference between revisions
→{{header|Perl}}: code fixes and enabled autoflush
(→{{header|Perl}}: code fixes and enabled autoflush) |
|||
Line 759:
=={{header|Perl}}==
The module <code>Time::HiRes</code> provides sub-second <tt>sleep</tt>. Text output only.
<lang perl>use Time::HiRes qw(sleep gettimeofday);
local $| = 1; # autoflush
$beats_per_minute = shift || 72;▼
$beats_per_bar = shift || 4;▼
▲my $beats_per_minute = shift || 72;
$duration = 60 / ($beats_per_minute * $beats_per_bar);▼
my $i = 0;
if (0 == $i++ % $beats_per_bar) {▼
my $base_time = gettimeofday() + $duration;
for (my $next_time = $base_time ; ; $next_time += $duration) {
print "\nTICK";
}
else {
print " tick";
}
sleep
}</lang>
Sample run
|