use strict; use warnings; use IO::Handle; my $log_file = 'mylogfile.txt'; open my $log, '>>', $log_file or die "Unable to open log file \"$log_file\": $!\n"; STDOUT->autoflush(1); $log->autoflush(1); my $foo=0; while(1){ $foo++; printf "Iteration: %d\n",$foo; $log->printf("Looped in %d\n",$foo); # or printf $log ... sleep 2; }