Warum entfernt PowerShell (mit Perl) doppelte Anführungszeichen in einer einfachen Druckanweisung?

Ich bin ein langjähriger Linux-Benutzer, aber neu in Windows und PowerShell. Ich habe gerade zum ersten Mal Windows7 und Strawberry Perl 5 installiert. Ich möchte jetzt mit Windows PowerShell einen einfachen Befehlszeilendruck ausführen.

Es sieht so aus, als ob Perl korrekt installiert ist:

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

Und Kommandozeilen-Sachen funktionieren:

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

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

Aber wenn ich es alleine probiere, wird eine Dateihandler-Warnung ausgegeben:

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

Es sieht also so aus, als würde man die doppelten Anführungszeichen entfernen.

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

Das funktioniert, aber es ist hässlich! Lass es uns erneut versuchen:

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

Das ist eher so, aber ich bin verwirrt.

Warum maskiert PowerShell die doppelten Anführungszeichen innerhalb der einfachen Anführungszeichen? Gibt es PowerShell-Benutzer?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage