2

Windows8のPowerShellのコマンドラインから複数のPerlコマンドを実行しようとしています。

これは動作します

perl -e "print 'Joe'";

これは印刷します:

Joe

これは動作しません

perl -e "my $string = 'Joe'; print $string;"

これは私にエラーを与えます

perl : syntax error at -e line 1, near "my  ="
At line:1 char:1
+ perl -e "my $string = 'Joe'; print $string;"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (syntax error at -e line 1, near "my  =":String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Execution of -e aborted due to compilation errors.

誰かが私が見逃している明らかな間違いを指摘できますか?ありがとう。私は通常UNIXでこれを行いますが、バックティックを使用します。二重引用符の代わりにラッパーとして。

4

1 に答える 1

8

これを試してみてください、しかし私はそれをテストすることはできません

perl -e 'my $string = ''Joe''; print $string;'

PowerShell$stringでは変数であり、二重引用符で囲まれた変数は、割り当てられた値で展開されます。一重引用符では、文字通りと見なされます。'一重引用符でエスケープするには、次のように2倍にします''

または試してみてください:

perl -e  "my `$string = 'Joe'; print `$string;"

`はPowerShellのエスケープ文字です。

于 2013-03-25T21:11:32.267 に答える