This is weird, because for me on ActiveState 820 (5.8.8+) with cmd.exe it works just the other way around:
Q:\>perl -wle "system 'echo *.pl'" *.pl Q:\>perl -wle "system 'echo *'" * Q:\>perl -wle "system 'echo *.*'" *.* Q:\>perl -wle "system 'type *.pl'" lcfget.pl #!/usr/bin/perl -w use strict; use Getopt::Long; ...
If you have cmd.exe as your shell, glob expansion should not happen, because cmd.exe does not glob. Also, (the string form of) system looks for "shell metacharacters" and if so (and on Windows, always to nearly always) invokes the shell if these are found.
So, unless $ENV{PERL5OPT} is loading weird modules or you don't have cmd.exe as the default shell, what you see shouldn't happen (on Windows). If it is none of the above , then I would call that a regression in Perl, as especially on Windows, system() is (almost) always system(STRING) and there is no sane way for Perl to decide whether it should glob-expand parameters or not.
In reply to Re: system and wildcard expansion?
by Corion
in thread system and wildcard expansion?
by BrowserUk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |