Вам не хватает приличной оболочки с вменяемыми и четко определенными правилами цитирования.В Windows только двойная кавычка считается кавычкой, а экранирующие правила плохо определены и противоречивы.Попробуйте:
perl -e "print qq{Hello World \n}"
Я настоятельно рекомендую избегать всего, кроме самых простых однострочных символов в Windows.(Другая проблема с однострочниками Windows заключается в том, что оболочка Windows не расширяет подстановочные знаки. Если вы используете *.txt
в командной строке, он будет искать файл с буквальным названием *.txt
. Вы столкнетесь с этим позже.)
В Windows то, что вы ввели, эквивалентно:
perl -e "'print" "Hello World \n'"
То есть код, который Perl пытается выполнить, это 'print
с @ARGV
, содержащим одну строку Hello World \n'
.(Это не перевод строки, это обратный слеш, за которым следует n
).