Wie schlafe ich in Perl kürzer als eine Sekunde?
Wie schlafe ich in Perl kürzer als eine Sekunde?
Antworten:
Von der Perldoc-Seite zum Thema Schlaf :
Für Verzögerungen mit einer feineren Granularität von mehr als einer Sekunde bietet das Time :: HiRes- Modul (von CPAN und ab Perl 5.8 Teil der Standarddistribution) usleep ().
Tatsächlich liefert es usleep()(was in Mikrosekunden schläft) und nanosleep()(was in Nanosekunden schläft). Vielleicht möchten Sie usleep(), was Sie mit einfacheren Zahlen umgehen lassen sollte. 1 Millisekunde Schlaf (jeweils):
use strict;
use warnings;
use Time::HiRes qw(usleep nanosleep);
# 1 millisecond == 1000 microseconds
usleep(1000);
# 1 microsecond == 1000 nanoseconds
nanosleep(1000000);
Wenn Sie dazu kein Modul laden möchten (oder können), können Sie möglicherweise auch die integrierte select()Funktion verwenden:
# Sleep for 250 milliseconds
select(undef, undef, undef, 0.25);
Zeit :: HiRes:
use Time::HiRes;
Time::HiRes::sleep(0.1); #.1 seconds
Time::HiRes::usleep(1); # 1 microsecond.
Von perlfaq8 :
Wie kann ich weniger als eine Sekunde schlafen () oder alarmieren ()?
Wenn Sie eine feinere Granularität als die von der Funktion sleep () bereitgestellte 1 Sekunde wünschen, können Sie am einfachsten die Funktion select () verwenden, die in select in perlfunc dokumentiert ist. Probieren Sie die Module Time :: HiRes und BSD :: Itimer aus (erhältlich bei CPAN und ab Perl 5.8. Time :: HiRes ist Teil der Standarddistribution).
Verwenden Sie Time :: HiRes .
Ein kurzes Googeln über "Perl High Resolution Timer" gab einen Hinweis auf Time :: HiRes . Vielleicht ist es das, was du willst.