Interesting... are whirleygigs and spinners also one of the rites of passage as one becomes more adept at perl? (Just curious...)
As to the code, I don't think I've seen one that waited for the timer-tick like that. Would the use of "\r" be an issue? (I would have suspected the use of the backspace character "\b" instead, but I haven't tried it myself yet... might also depend on the terminal, though.)
Personally, I tend to do something like the following (adapted here from a previous posting), but that's just me:
#!/usr/bin/perl -w use strict; $| = 1; my @spinner = ('|', '/', '-', '\\'); my $bigscale = 100_000; my $scale = 100; my $index = 0; # replace the following two lines # with a loop appropriate to the project my $in_loop = 1; while ($in_loop) { # Do work. print $spinner[($index++ / $scale) % 4], "\b"; print '.' unless ($index % $bigscale); # And for completeness, for demonstration purposes... $in_loop = 0 if ($index > (($scale / 2) * $bigscale)); }
Updated: (08 Dec 2003) Corrected use of "rites" instead of "rights." (Thank you, liz, for the correction.)
In reply to Re: spinner to keep the patiently waiting user patient
by atcroft
in thread spinner to keep the patiently waiting user patient
by ysth
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |