2010-12-03 11 views
6

¿Hay alguna manera de mostrar una animación mientras Perl está procesando un archivo u otra cosa? Tal vez la secuencia de |/- | \ (tubo giratorio) en lugar de simplemente imprimir puntos.carga/procesamiento de animación en Perl

Gracias por su ayuda.

Respuesta

7

El simple giro de tubos pueden ser creados usando código como este:

#!/usr/bin/perl 

use strict; 
use warnings; 

$|++; # turn off output buffering; 

my @chars = qw(|/- \); 

my $i = 0; 

print $chars[$i]; 

while (1) { 
    sleep 1; 
    print "\b", $chars[++$i % @chars]; 
} 

Para algo más complejo, echar un vistazo a Term::ProgressBar.

+0

Gracias, estaba probando Win32 :: Console, pero "\ b" se ve mejor. – Milde

3

Claro, algo como esto lo hará:

perl -e '$|++; foreach $i (0..10) { print "\r", substr("|/-\\", ($i % 4), 1); sleep 1; }' 

Usted puede poner código como este dentro de su bucle de procesamiento para mostrar un spinner apropiado.