Hi, the sample codes above use usleep. Here is the program using nanosleep.
#!/usr/bin/perl
use strict;
use warnings;
use Time::HiRes qw(usleep nanosleep gettimeofday);
my @start = gettimeofday ();
my $sleep = nanosleep(1000);
my @end = gettimeofday ();
print "[$sleep][@start][@end]\n";
Results:
[1000][1345190945 846575][1345190945 846739]
Compared with the codes that just get the timestamps two times(without the nanosleep line). The nanosleep actually sleeps much longer than 1 microsecond.
#!/usr/bin/perl
use strict;
use warnings;
use Time::HiRes qw(usleep nanosleep gettimeofday);
my @start = gettimeofday ();
my @end = gettimeofday ();
print "[@start][@end]\n";
Results:
[1345190988 610721][1345190988 610723]