Serguei Trouchelle <s...@cpan.org> writes:

> Probably somewhere in MSDN.

But the list form of system() can be fixed for Windows, see

    
http://blogs.perl.org/users/graham_knop/2011/12/using-system-or-exec-safely-on-windows.html

>
> The problem is not in Perl, the problem is in Windows command line
> where single quote is not a quote, and double quote should be doubled
> (or escaped) to work as people from bash/sh world would expect.
>
> Examples:
>
> C:\>perl -M5.010 -we "say ""a"""
> a
>
> C:\>perl -M5.010 -we "say "a""
> Unquoted string "a" may clash with future reserved word at -e line 1.
> Name "main::a" used only once: possible typo at -e line 1.
> say() on unopened filehandle a at -e line 1.
>
> C:\>perl -M5.010 -we 'say "a"'
> Can't find string terminator "'" anywhere before EOF at -e line 1.
>
> C:\>perl -M5.010 -we "say \"a\""
> a
>
> On 2019-02-26 09:32, Karen Etheridge wrote:
>> Is there any documentation on that? `perldoc -f system` only describes
>> the different handling of "system LIST" vs "system PROGRAM LIST" on
>> windows, not any differences between different types of quote
>> characters.
>>
>> On Mon, Feb 25, 2019 at 11:28 PM Serguei Trouchelle <s...@cpan.org> wrote:
>>> On 2019-02-25 05:11, David Cantrell wrote:
>>>
>>>> I don't need to use Andreas's analysis tool to figure out what the
>>>> common factor is in these test failures :-)
>>>>     http://cpantesters.org/distro/T/Test-Differences.html
>>>>
>>>> But I don't have access to any Windows machines, or any knowledge of how
>>>> to use any of the tools on that platform or how to install stuff. Does
>>>> anything exist now like the project a few years ago where Microsoft
>>>> donated some cloudy VMs for use by perl people that already had a
>>>> sensible toolchain and stuff installed?
>>>>
>>> I looked into the problem, the issue lies in calling system() with
>>> double quotes. Double quotes on Win32 behave different from Unix-like
>>> systems and should generally be avoided. This diff fixes the problem:
>>>
>>> 25,26c25,26
>>> <             [        "\\N{U+2603}", "\\N{U+1F4A9}"],
>>> <             [reverse "\\N{U+2603}", "\\N{U+1F4A9}"]
>>> ---
>>>   >             [        qq{\\N{U+2603}}, qq{\\N{U+1F4A9}}],
>>>   >             [reverse qq{\\N{U+2603}}, qq{\\N{U+1F4A9}}]
>>>
>>>
>>> --
>>> S.T.
>>

Regards,
    Slaven

-- 
Slaven Rezic - slaven <at> rezic <dot> de
  BBBike - route planner for cyclists in Berlin
  WWW version:                           http://www.bbbike.de
  Perl/Tk version for Unix and Windows:  http://bbbike.sourceforge.net

Reply via email to