什么';在这里运行命令行perl有什么不对?

什么';在这里运行命令行perl有什么不对?,perl,Perl,如果我把它放在一个文件中,上面的方法是有效的,但是为什么命令行失败呢?对我(windows)有效。也许在你的操作系统中你需要使用单引号?看起来像是linux/unix,双引号扩展了前缀为$美元符号的变量。$hash被shell视为变量。使用单引号而不是双引号来防止shell插值。 [root@dev-test test]$ perl -e "%hash=(key,1);print 1 if exists $hash{key};" exists argument is not a HASH or

如果我把它放在一个文件中,上面的方法是有效的,但是为什么命令行失败呢?

对我(windows)有效。也许在你的操作系统中你需要使用单引号?看起来像是linux/unix,双引号扩展了前缀为
$
美元符号的变量。

$hash
被shell视为变量。

使用单引号而不是双引号来防止shell插值。
[root@dev-test test]$ perl -e "%hash=(key,1);print 1 if exists $hash{key};"
exists argument is not a HASH or ARRAY element at -e line 1.