##### 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; }