$| = 1;#flush the buffer warn "Starting Program"; print "Hello World\n"; warn "Ending Program"; #### perl -w warn.pl Starting Program at warn.pl line 2. Hello World Ending Program at warn.pl line 4. #### use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($ERROR); use Capture::Tiny 0.12 qw( capture_stderr ); my $errors = capture_stderr{ system( 'warn.pl' );# Your favorite system call here }; map{ ERROR $_ } split "\n", $errors; #### perl -w WarnCapture.pl Hello World 2012/09/14 16:34:20 Starting Program at C:\Scripts\warn.pl line 2. 2012/09/14 16:34:20 Ending Program at C:\Scripts\warn.pl line 4.