in reply to spinner to keep the patiently waiting user patient
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.)
|
|---|