Beefy Boxes and Bandwidth Generously Provided by pair Networks vroom
Keep It Simple, Stupid
 
PerlMonks  

Re^4: Problem with 'system' function in Windows Vista

by diotalevi (Canon)
on Mar 20, 2007 at 23:32 UTC ( #605766=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Problem with 'system' function in Windows Vista
in thread Problem with 'system' function in Windows Vista

Escaping, when possible was usually just another doublequote: "bar ""baz" -> bar " baz.

⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊


Comment on Re^4: Problem with 'system' function in Windows Vista
Select or Download Code
Re^5: Problem with 'system' function in Windows Vista (escape quote)
by tye (Cardinal) on Mar 20, 2007 at 23:49 UTC

    The documented MS C RTL quoting rules (that not all Win32 programs follow, unfortunately) say that to get <bar " baz> you should write <"bar \" baz">. The implementation is a bit weird, especially if you don't follow those rules. But your case doesn't work for me:

    C:\> perl -le"print '<',$_,'>' for @ARGV" "foo "" bar" <foo "> <bar> C:\>

    Note that \ only "escapes" when in a construct matching /\\+"/ (an even number of backslases results in $n-1 backslashes, an odd number in $n-1 backslashes followed by a quote).

    This pointed out a subtle bug in the "current" Perl quoting that is done:

    system( $^X, '"-leprint qq(<$_>) for @ARGV"', "\\root\\subdir\\", "\\root dir\\sub dir\\", ); produces: <\root\subdir\> <\root dir\sub dir">

    The fact that I had to quote and be careful with that second argument is the not-subtle short-coming. But the fix for it also fixes the final \ turning into a ".

    - tye        

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://605766]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2014-04-21 01:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (489 votes), past polls