in reply to Troubles with do...while loop and sleep

You are suffering from buffering. Here are two fixes:
use IO::Handle qw( ); STDOUT->autoflush(1); do { sleep(5); print "Hello..."; } while(1);
use IO::Handle qw( ); do { STDOUT->flush(); sleep(5); print "Hello..."; } while(1);