On 22 Mar 2002, Garth Winter Webb wrote:

> On Fri, 2002-03-22 at 12:57, Robert Landrum wrote:
>
> > >That's is very weird, because this code doesn't seem to work:
> > >
> > >perl -e 'system("perl", " -e1") == 0 or die "oops"'
> >
> > Actually, that's not all that weird.  Most shells take care of
> > stripping out garbage before setting the argument list.  Since
> > system(LIST) doesn't use the shell, it's passing perl the literal "
> > -e1" which perl won't recognize as a command line option (and
> > correctly so in my opinion).
>
> Actually this isn't standard behavior.  I can't think of a situation
> where I would want to use system to concatanate a string for me rather
> than interpreting the string as an argument and act accordingly.  If you
> check 'perldoc -f system', this is exactly what system is supposed to do
> when given a program name and a list of arguments, so it looks like
> 'systetm' may be buggy in the win32 version of perl

This behaviour seems to be dependent on the Perl version and on
the Win32 "shell" used - the leading whitespace in front of the
1st argument after the program name in the system() call didn't
cause a problem on Windows 98 with ActivePerl 626 (which I used
to develop that part of the Makefile.PL), but it does cause a
problem on other Win32s with different ActivePerl versions.

best regards,
randy kobes

Reply via email to