Recipe 3.10 Short Sleeps

3.10.1 Problem

You need to sleep for less than a second.

3.10.2 Solution

Use the select( ) function, if your system supports it:

select(undef, undef, undef, $time_to_sleep);

Some systems don't support a four-argument select. The Time::HiRes module provides a sleep function that takes a floating-point number of seconds:

use Time::HiRes qw(sleep); sleep($time_to_sleep);

3.10.3 Discussion

Here's an example of select. It's a simpler version of the program in Recipe 1.6. Think of it as your very own 300-baud terminal.

while (<>) {     select(undef, undef, undef, 0.25);     print; }

Using Time::HiRes, we'd write it as:

use Time::HiRes qw(sleep); while (<>) {     sleep(0.25);     print; }

3.10.4 See Also

The documentation for the CPAN modules Time::HiRes and Benchmark; the sleep and select functions in perlfunc(1) and Chapter 29 of Programming Perl; we use the select function for short sleeps in the slowcat program in Recipe 1.6



Perl Cookbook
Perl Cookbook, Second Edition
ISBN: 0596003137
EAN: 2147483647
Year: 2003
Pages: 501

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net