By default, perl handles file globbing using the File::Glob extension,
which provides portable globbing.
<P>If you want perl to use globbing that emulates the quirks of DOS
filename conventions, you might want to consider using File::DosGlob
to override the internal <A HREF="../../lib/Pod/perlfunc.html#item_glob"><CODE>glob()</CODE></A> implementation. See <A HREF="../../lib/File/DosGlob.html">the File::DosGlob manpage</A> for
details.</P>
<P></P>
<DT><STRONG><A NAME="item_Using_perl_from_the_command_line">Using perl from the command line</A></STRONG><BR>
<DD>
If you are accustomed to using perl from various command-line
shells found in UNIX environments, you will be less than pleased
with what Windows offers by way of a command shell.
<P>The crucial thing to understand about the ``cmd'' shell (which is
the default on Windows NT) is that it does not do any wildcard
expansions of command-line arguments (so wildcards need not be
quoted). It also provides only rudimentary quoting. The only
(useful) quote character is the double quote (``). It can be used to
protect spaces in arguments and other special characters. The
Windows NT documentation has almost no description of how the
quoting rules are implemented, but here are some general observations
based on experiments: The shell breaks arguments at spaces and
passes them to programs in argc/argv. Doublequotes can be used
to prevent arguments with spaces in them from being split up.
You can put a double quote in an argument by escaping it with
a backslash and enclosing the whole argument within double quotes.
The backslash and the pair of double quotes surrounding the
argument will be stripped by the shell.</P>
<P>The file redirection characters ``<'', ``>'', and ``|'' cannot be quoted
by double quotes (there are probably more such). Single quotes
will protect those three file redirection characters, but the
single quotes don't get stripped by the shell (just to make this
type of quoting completely useless). The caret ``^'' has also
been observed to behave as a quoting character (and doesn't get
stripped by the shell also).</P>
<P>Here are some examples of usage of the ``cmd'' shell:</P>
<P>This prints two doublequotes:</P>
<PRE>
perl -e "print '\"\"' "</PRE>
<P>This does the same:</P>
<PRE>
perl -e "print \"\\\"\\\"\" "</PRE>
<P>This prints ``bar'' and writes ``foo'' to the file ``blurch'':</P>