Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: A whirleygig for a progress indicator for scripts

by Shendal (Hermit)
on Sep 21, 2001 at 00:53 UTC ( [id://113699]=note: print w/replies, xml ) Need Help??


in reply to A whirleygig for a progress indicator for scripts

In the spirit of TMTOWTDI, I thought that using tie might be interesting.

##### Whirley package package Whirley; use strict; my @whirlies = qw!. o 0 O 0 o!; my $current = -1; sub TIESCALAR { my $type = shift; my $class = ref $type || $type; my $self = {}; bless $self, $class; } sub FETCH { my $self = shift; my $backspace = $current < 0 ? '' : "\b"; # don't backspace on first + go 'round $current = 0 if (++$current == @whirlies); return $backspace . $whirlies[$current]; } ##### Main package package Main; use strict; $|++; my $whirley; tie $whirley, 'Whirley'; print "Please wait: "; while (1) { print $whirley; sleep 1; }

Cheers,
Shendal

Replies are listed 'Best First'.
Re: Re: A whirleygig for a progress indicator for scripts
by rob_au (Abbot) on Dec 18, 2002 at 12:53 UTC
    Using the Tie::Cycle module, this can be simplified further ...

    use Tie::Cycle; tie my $whirley, 'Tie::Cycle', [ qw( . o 0 O 0 o ) ]; # And now for the demonstration ... ++$|; while (1) { print $whirley, "\b"; sleep 1; }

     

    perl -le 'print+unpack("N",pack("B32","00000000000000000000001000000000"))'

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://113699]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2024-04-23 20:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found