1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| #Init de la barre de progression
#@spin = ('|','/','-','\\'); #plusieurs modèles au choix !
#@spin = ('> ','-> ','-->','---> ','--> ','-> ');
@spin = ('o---','-o--','--o-','---o','--o-','-o--');
$index_barre = 0;
$SIG{'ALRM'} = \&_barre_progression;
...
#lance la barre de progression
&_lance_barre();
.. #données à traiter...
&_arrete_barre();
..
# -----------------------------------------------------------------
# Routines d'animation de la barre de progression
# -----------------------------------------------------------------
sub _lance_barre
{
$quitte_barre = 0;
$index_barre = 0;
alarm(1);
}
sub _arrete_barre
{
$quitte_barre = 1;
}
sub _barre_progression
{
$index_barre = ($index_barre+1) % scalar @spin;
if (!$quitte_barre)
{
print $spin[$index_barre];
alarm(1);
for (my $i=0;$i<length($spin[$index_barre]);$i++)
{
print chr 8;
}
}
if ($quitte_barre)
{
alarm(0);
}
} |
Partager