2011-11-03 10 views
10

¿Cómo puedo obtener el tiempo en milisegundos en Perl sin instalar ningún paquete adicional?Obtenga tiempo en milisegundos sin instalar un paquete adicional?

Estoy ejecutando Linux.

+3

'date +% N 'te da nanosegundos ... ¿puedes trabajar desde allí? % s da segundos de 1970 ... – Konerak

+5

¿Por qué no puedes usar 'Time :: HiRes'? – Polynomial

+3

¿Por qué no puedes instalar un módulo? De todos modos, dependiendo de su versión de Perl, probablemente tenga disponible Time :: HiRes (http://perldoc.perl.org/Time/HiRes.html). –

Respuesta

22

Time::HiRes ha sido parte del núcleo desde Perl 5.7.3. Para verificar su disponibilidad, verifique la versión de Perl, perl -v, o intente usarla con perl -e 'use Time::HiRes;', ambos desde la línea de comando.

Ejemplo de uso:

use Time::HiRes qw/ time sleep /; 

my $start = time; 
sleep rand(10)/3; 
my $end = time; 

print 'Slept for ', ($end - $start) , "\n"; 

Para construir sobre el comentario de Konerak, si no está allí o no puede ser utilizado, uso nativo de Linux comandos a través de acentos abiertos:

sub time_since_epoch { return `date +%s.%N` } 

print time_since_epoch; 
+0

debe ser' date +% s.% N' – mob

+0

Para cargar y/o verificar un módulo desde la línea de comando puede usar: perl -MTime :: HiRes -e 1 en lugar de: perl -e 'uso Time :: HiRes' – JRFerguson

+0

@mob: Gracias por la corrección. @James_R_Ferguson: A propósito omití la bandera '-M' porque no quería confundir al que pregunta con la sintaxis (usar' 1' en lugar de '''' es una pequeña sugerencia :). – Zaid

Cuestiones relacionadas