In generale, potreste non essere in grado di farlo. Il modulo Time::Hires
(disponibile su CPAN, e parte della distribuzione standard a partire da
Perl 5.8) fornisce questa funzionalità per alcuni sistemi.
Se il vostro sistema supporta la funzione syscall() in Perl e la chiamata
di sistema gettimeofday(2), allora potreste esser in grado di fare qualcosa
del genere:
require 'sys/syscall.ph';
$TIMEVAL_T = "LL";
$fatto = $inizio = pack($TIMEVAL_T, ());
syscall(&SYS_gettimeofday, $inizio, 0) != -1
or die "gettimeofday: $!";
#################################
# FATE LE VOSTRE OPERAZIONI QUI #
#################################
syscall( &SYS_gettimeofday, $fatto, 0) != -1
or die "gettimeofday: $!";
@inizio = unpack($TIMEVAL_T, $inizio);
@fatto = unpack($TIMEVAL_T, $fatto);
# converte i microsecondi
for ($fatto[1], $inizio[1]) { $_ /= 1_000_000 }
$delta_t = sprintf "%.4f", ($fatto[0] + $fatto[1] )
-
($inizio[0] + $inizio[1] );
|