Subject: Re: [PATCH] Convert open("-|") to qx{} calls

From: Rogan Dawes <[email-masked]>
Date: Fri, 24 Feb 2006 07:19:45 +0200

Alex Riesen wrote:
> Randal L. Schwartz, Thu, Feb 23, 2006 21:41:44 +0100:
>> Johannes> Now that our local Perl guru joined the discussion, may I ask what
>> Johannes> is, and what is not quoted when put inside qx{}?
>>
>> Nothing is quoted.  Your string acts as if it was XXX in:
>>
>>         sh -c 'XXX'
>>
> 
> Not so for ActiveState. It'll just run the first non-whitespace word
> passing the rest of the line in its command-line.
> It's not even worse then to pass it all to cmd/command :)
> 

Not true.

 > type t
#!perl -w

print qx{echo joe & echo joe}."\n";
 > perl t
joe
joe

If the shell was not interpreting the arguments, you would expect to get 
1 line with:

joe & echo joe

on it.

 > perl -v
This is perl, v5.8.7 built for MSWin32-x86-multi-thread
(with 7 registered patches, see perl -V for more detail)

Copyright 1987-2005, Larry Wall

Binary build 813 [148120] provided by ActiveState http://www.ActiveState.com
ActiveState is a division of Sophos.
Built Jun  6 2005 13:36:37

Perl may be copied only under the terms of either the Artistic License 
or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'.  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

Regards,

Rogan