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.