cztmonk has asked for the wisdom of the Perl Monks concerning the following question:

I want to check whether Perl scripts compile correctly. I want to compile a bunch of perlscripts, within a pl script. So I want to capture the output of  perl -c scriptname, the "ok" part, to check if syntax is ok. Why is the output always going to stderr? I want to capture it in $result.My code is:

BTW i am working on Windows...

use strict; use warnings; # Capture the output of the "dir" command: my $dir=`dir compile.pl`; print $dir; # Now capture the output of this: my $result=`perl -c compile.pl`; # Check if there is anything in $result print "Length is :".length($result); exit 0; # This results in the following output : __DATA__ 29-06-2012 11:44 412 compile.pl . . compile.pl syntax OK Length is :0

Replies are listed 'Best First'.
Re: capture output of perl -c scriptname
by zentara (Cardinal) on Jun 29, 2012 at 10:44 UTC

      This answers my question! Thank you very much...

Re: capture output of perl -c scriptname
by Anonymous Monk on Jun 29, 2012 at 10:26 UTC

      I want to Check whether Perl scripts compile correctly. Thanks for the link to Test::Compile

Re: capture output of perl -c scriptname
by choroba (Cardinal) on Jun 29, 2012 at 10:20 UTC
    Why is the output always going to stdout?
    It is not. It goes to STDERR, as you have experienced.

      Thank you for this, I updated my question. Why can't I get the result into $result?