http://www.perlmonks.org?node_id=742631

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

Monks,

I'm running linklint from a perl program on Win XP and I want to capture its output in a variable like so:

my $result = `perl D:\\Perl\\bin\\linklint-2.3.5 http://www.perlmonks. +org `; print "result: $result\n";
That doesn't work. $result is always empty despite the fact that the call to linklint works and displays output to the screen.

This does work:

my $test = `perl -v `; print "this is test: $test\n";
$test contains the output of `perl -v`, so I assumed it would work the same way with linklint.

I also tried this:

my @result = (); open (TEST, "perl D:\\Perl\\bin\\linklint-2.3.5 http://www.perlmonks.o +rg |"); while (<TEST>){ push(@result, $_); } close TEST; print "This is result: @result\n";
That didn't work either with linklint (but it does work with perl -v).

So, it *appears* that this is something related to linklint, but I'm not sure what that is.

Any ideas?

Thanks

Replies are listed 'Best First'.
Re: Capturing output of linklint on Win32
by toolic (Bishop) on Feb 10, 2009 at 01:44 UTC
    Is the linklint output going to STDERR instead of STDOUT? Did you try to capture both?
    my $result = `perl D:\\Perl\\bin\\linklint-2.3.5 http://www.perlmonks. +org 2>&1`;

    See also `STRING`

      That fixed it. Thanks.