my $d = HTTP::Daemon->new ( LocalAddr => 'localhost', LocalPort => 1244 ) or die; $d->timeout(1); MAIN_LOOP: while (1) { my $c = $d->accept; unless (defined $c) { do_other_stuff(); next MAIN_LOOP; } process_request($c); }