Spinning rod animation/Text: Difference between revisions
→{{header|Perl 6}}: Add a Perl 6 example
Childishbeat (talk | contribs) m (A GlovePIE section has been added.) |
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Add a Perl 6 example) |
||
Line 104:
EndWhile</lang>
=={{header|Perl 6}}==
{{works with|Rakudo|2018.05}}
Traditionally this is know as a [[wp:throbber|throbber]] or progress indicator.
This will accept an array of elements to use as its throbber frames, and optionally a delay before it returns the next element.
<lang perl6>class throbber {
has @.members;
has $.delay is rw = 0;
has $!index = 0;
method next {
$!index = ($!index + 1) % +@.members;
sleep $.delay if $.delay;
"\b" ~ @.members[$!index];
}
}
my $rod = throbber.new( :members(< | / - \ >), :delay(.25) );
print "\e[?25lLong running process... ";
print $rod.next for ^20;
my $clock = throbber.new( :members("🕐" .. "🕛") );
print "\b \nSomething else with a delay... ";
until my $done {
# do something in a loop;
sleep 1/12; # simulate processing delay
print $clock.next;
$done = True if $++ >= 60;
}
END { print "\b \e[?25h\n" } # clean up on exit</lang>
=={{header|zkl}}==
|