2011-11-03 10 views
10

Come posso ottenere il tempo in millisecondi in Perl senza installare alcun pacchetto aggiuntivo?Ottieni il tempo in millisecondi senza installare un pacchetto aggiuntivo?

Sto utilizzando Linux.

+3

'date +% N 'ti dà nanosecondi ... puoi lavorare da lì? % s dà secondi sinds 1970 ... – Konerak

+5

Qualsiasi motivo non è possibile utilizzare 'Tempo :: HiRes'? – Polynomial

+3

Perché non puoi installare un modulo? Indipendentemente, a seconda della versione di Perl, probabilmente avete Time :: HiRes (http://perldoc.perl.org/Time/HiRes.html) disponibile. –

risposta

22

Time::HiRes fa parte del core da Perl 5.7.3. Per verificare la sua disponibilità, controllare la versione Perl, perl -v, o provare a usarlo con perl -e 'use Time::HiRes;', entrambi dalla riga di comando.

utilizzo Esempio:

use Time::HiRes qw/ time sleep /; 

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

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

Per costruire il commento di Konerak, se non c'è o non può essere utilizzato, utilizzare nativo Linux comanda tramite apici inversi:

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

print time_since_epoch; 
+0

dovrebbe essere' data +% s.% N' – mob

+0

Per caricare e/o verificare un modulo dalla riga di comando è possibile utilizzare: perl -MTime :: HiRes -e 1 in sostituzione di: perl -e 'use Time :: HiRes' – JRFerguson

+0

@mob: Grazie per la correzione. @James_R_Ferguson: ho intenzionalmente omesso il flag '-M' perché non volevo confondere l'interrogante con la sintassi (usando' 1' invece di ''' è un piccolo suggerimento però :). – Zaid