my $counter; init_timer(); while(1) { select(undef, undef, undef, 0.5); print "$counter " . scalar(localtime) . "\n"; } sub init_timer { $counter = 0; $SIG{ALRM} = \&tick; alarm(1); } sub tick { alarm(1); $counter++; }