use IO::Handle qw( ); use Time::HiRes qw( time sleep ); open(my $fh, '>', $file) or die; $fh->autoflush(1); my $target = time() + 0.500; for (;;) { print($fh "1"); $target += 0.500; sleep($target - time()); }