I am trying to run the following on Windows with 5.14.2
C:\Perl>perl -e 'print "Hello World \n"' Can't find string terminator "'" anywhere before EOF at -e line 1.
What am I missing?
You're missing a decent shell with sane and well-defined quoting rules. On Windows, only the double quote is considered a quote, and the escaping rules are poorly defined and inconsistent. Try:
perl -e "print qq{Hello World \n}"
I strongly recommend avoiding anything but the very simplest one-liners on Windows. (Another problem with Windows one-liners is that the Windows shell doesn't expand wildcards. If you use *.txt
on the command line, it'll look for a file named literally *.txt
. You'll run into that later.)
On Windows, what you typed is equivalent to:
perl -e "'print" "Hello World \n'"
That is, the code Perl is trying to execute is 'print
with @ARGV
containing the single string Hello World \n'
. (That's not a newline, that's a backslash followed by n
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With