Re: win32 quoting and do_system()

[email protected] (Eric Wilhelm)
Newsgroups perl.module.build
Message-ID <[email protected]>
# from [email protected]
# on Thursday 18 September 2008 03:16:

>+  if ($status and $! =~ /Argument list too long/i) {
>+    my $env_entries = '';
>+    foreach (sort keys %ENV) { $env_entries .=
> "$_=>".length($ENV{$_})."; " } +    warn "'Argument list' was 'too
> long', env lengths are $env_entries"; +  }

That chunk probably shouldn't be in the win32 code ;-)  A: we should fix 
the PERL5LIB problem and  B: I don't think that kernel has the same 
error message as redhat.

As for the rest, it's possible that we're just as well to do the quoting 
and run system($scalar) here, but we could possibly still keep it as a 
list.  I think win32/win32.c implies that it does get to the win32 api 
as a list, but I'm not sure.

  system($^X, '-e', '"print \\"hello world!\n\\""');

So if it has ", then it has to be wrapped in ", and then any " have to 
be \", but also any literal \ preceding a " needs to become \\\".

Thanks,
Eric
-- 
If the above message is encrypted and you have lost your pgp key, please
send a self-addressed, stamped lead box to the address below.
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.