You are here: Wissensbasis Web>UtilFaqInclude>WieWarteIch (2006-10-02)

Wie unterbreche ich kurz mein Programm (und lass es schlafen)?

Inhalt:

In einigen Fällen muss während des Programmablaufs gewartet werden bis es weitergehen kann. Ein möglicher Grund für die Warterei ist, dass erst noch eine Datei erstellt werden muss (von einem anderen Programm) bevor es weitergehen kann.

Hier werden einige Möglichkeiten gezeigt, wie man den Programmablauf kurz stoppen kann.

sleep

Die einfachste Methode, zu warten ist mit sleep! Die Funktion erwartet eine natürliche Zahl, die das Programm warten soll

#!/usr/bin/perl

use strict;
use warnings;

print "Ich warte ...\n";

# warte 10 Sekunden
sleep(10); 

print "Fertig! Ich habe 10 Sekunden gewartet";

select

select kann man für die Warterei "missbrauchen". Wenn select mit 4 Argumenten aufgerufen wird, ist der 4. Wert der Timeout. Mit select kann man auch kürzere Pausen als 1 Sekunde einlegen:

#!/usr/bin/perl

use strict;
use warnings;

print "Ich warte ...\n";

# warte 10 Sekunden
select(undef,undef,undef,0.10); 

print "Fertig! Ich habe 0,1 Sekunden gewartet";

Time::HiRes

Wie für fast jedes Problem, bietet auch diesmal CPAN wieder ein geeignetes Modul: Time::HiRes. Dieses Modul bietet auch eine sleep-Methode. Im Gegensatz zu der nativen Methode, kann man damit auch Pausen, die kürzer als 1 Sekunde sind, realisieren:

#!/usr/bin/perl

use strict;
use warnings;
use Time::HiRes qw(sleep);

print "Ich warte ...\n";

# warte 10 Sekunden
sleep(0.10); 

print "Fertig! Ich habe 0,1 Sekunden gewartet";

Ergänzungen, Kommentare

Kommentare werden am besten in folgender Form vorgenommen, damit sie im Inhaltsverzeichnis angezeigt werden (natürlich ohne das <verbatim>):
---+++ Main.??? - 14 Jul 2003 - Betreff

UtilFaqSubForm edit

Titel Wie unterbreche ich kurz mein Programm (und lass es schlafen)?
Autor ReneeBaecker
Bereich FaqAllgemeines
Topic revision: 2006-10-02, ReneeBaecker
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.