Spinning rod animation/Text: Difference between revisions

→‎{{header|Perl 6}}: Add a Perl 6 example
m (A GlovePIE section has been added.)
(→‎{{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}}==
10,339

edits