in reply to progress bars

I was bored, so here's a tie version:
package Status; sub TIESCALAR { my $c = shift; my @v = @_; @v = ('|', '/', '-', '\\') unless @v; bless { vals => \@v, status => 0 }, $c; } sub FETCH { $_[0]->{status} = ($_[0]->{status} + 1) % scalar @{ $_[0]- +>{vals} }; return $_[0]->{vals}[ $_[0]->{status} ] } package main; $| = 1; tie $s, 'Status'; while (1) { print $s; select(undef,undef,undef,0.1); print "\r" x 40; }
Just pass in the sequence when tying:
tie $status, 'Status', qw( - + | + );
or let it default to the one you specified above.

ar0n ]