doom has asked for the wisdom of the Perl Monks concerning the following question:
I understand there are several different flavors of perl on Windows boxes (vanilla, strawberry, active state, cygwin...), and I was wondering whether they come with anything like a Bourne shell, in particular, I was wondering how they handle redirection when shelling out with qx{} (aka backticks).
If you windows users do something like this, would you expect it to work (i.e. to give you the standard output mixed with any error messages)?
my $captured_output = qx{ some_command 2>&1 };In fact, if you're a windows/perl person, do you think you could run the following code and report back what kind of output you see?
use File::Temp qw( tempfile ); use File::Spec qw( devnull ); $|=1; my $code =<<'CODE'; $|=1; print "ABC\n"; print STDERR "012\n"; print "IJK\n"; print STDERR "345\n"; print "XYZ\n"; print STDERR "678\n"; CODE # create a temporary perl script file my ($fh1, $scriptname) = tempfile( 'yap_XXXX', SUFFIX => '.pl'); print {$fh1} $code; close( $fh1 ); my $perl = $^X; my $devnull = File::Spec->devnull; print "No redirect: \n"; print qx{ $perl $scriptname }, "\n"; print "Redirect errors to devnull: \n"; print qx{ $perl $scriptname 2>$devnull }, "\n"; print "Redirect merging stderr and stdout: \n"; print qx{ $perl $scriptname 2>&1 }, "\n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: shell redirect on windows, qx?
by BrowserUk (Patriarch) on Apr 11, 2008 at 21:01 UTC | |
by doom (Deacon) on Apr 11, 2008 at 21:17 UTC | |
by BrowserUk (Patriarch) on Apr 11, 2008 at 21:28 UTC | |
|
Re: shell redirect on windows, qx?
by mr_mischief (Monsignor) on Apr 11, 2008 at 21:53 UTC |