¿Por qué PowerShell (con Perl) elimina las comillas dobles en una simple declaración de impresión?
Soy un usuario de Linux desde hace mucho tiempo, pero soy nuevo en Windows y PowerShell. Acabo de instalar Windows7 y Strawberry Perl 5 por primera vez. Ahora quiero hacer una impresión de línea de comandos simple con Windows PowerShell.
Parece que Perl se instaló correctamente:
PS C:\Users\Me> perl -v This is perl, v5.10.0 built for MSWin32-x86-multi-thread Copyright 1987-2007, Larry Wall ...
Y las cosas de la línea de comandos funcionan:
PS C:\Users\Me> perl -e 'die' Died at -e line 1. PS C:\Users\Me> echo 'print "Hello, World\n"' | perl Hello, World
Pero cuando lo intento todo solo imprime una advertencia de administrador de archivos:
PS C:\Users\Me> perl -e 'print "Hello, World\n"' No comma allowed after filehandle at -e line 1.
Así que parece que está eliminando las comillas dobles.
PS C:\Users\Me> perl -e 'print \"Hello, World\n\"' Hello, World
Eso funciona pero es feo! Intentemoslo de nuevo:
PS C:\Users\Me> perl -e 'print qq{Hello, World\n}' Hello, World
Eso me gusta más, pero estoy confundido.
¿Por qué PowerShell está escapando las comillas dobles dentro de las comillas simples? ¿Algún usuario de PowerShell por ahí?