Почему PowerShell (с Perl) удаляет двойные кавычки в простом операторе печати?

Я давний пользователь Linux, но я новичок в Windows и PowerShell. Я только что установил Windows7 и Strawberry Perl 5 в первый раз. Теперь я хочу сделать простую печать из командной строки с помощью Windows PowerShell.

Похоже, Perl установлен правильно:

PS C:\Users\Me> perl -v 
This is perl, v5.10.0 built for MSWin32-x86-multi-thread Copyright
1987-2007, Larry Wall 
...

И работает из командной строки:

PS C:\Users\Me> perl -e 'die'
Died at -e line 1.

PS C:\Users\Me> echo 'print "Hello, World\n"' | perl
Hello, World

Но когда я пробую все это самостоятельно, он выводит предупреждение обработчика файла:

PS C:\Users\Me> perl -e 'print "Hello, World\n"'
No comma allowed after filehandle at -e line 1.

Так что это похоже на удаление двойных кавычек.

PS C:\Users\Me> perl -e 'print \"Hello, World\n\"'
Hello, World

Это работает, но это уродливо! Давай еще раз попробуем:

PS C:\Users\Me> perl -e 'print qq{Hello, World\n}'
Hello, World

Это больше нравится, но я в замешательстве.

Почему PowerShell избегает двойных кавычек в одинарных кавычках? Есть ли пользователи PowerShell?

Ответы на вопрос(3)

Ваш ответ на вопрос