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?