活动perl切掉了“^&引用;来自@ARGV

活动perl切掉了“^&引用;来自@ARGV,perl,windows-7,argv,Perl,Windows 7,Argv,以下代码仅适用于mac,但不适用于windows7 perl -e "print @ARGV" aaa^bbb 在Mac(Perl5.10,darwin)上,它按预期输出:aaa^bbb 在Windows7,32位(ActivePerl5.12)上,它打印出:aaabbb “^”字符将从@ARGV中抛出。 这个字符是我使用脚本的文件名的一部分,所以我需要能够从@ARGV读取它 我尝试使用“aaa”^bbb,但它只是打印出“aaa\bbb”。不是ActivePerl丢弃^字符,而是Windows

以下代码仅适用于mac,但不适用于windows7

perl -e "print @ARGV" aaa^bbb
在Mac(Perl5.10,darwin)上,它按预期输出:aaa^bbb

在Windows7,32位(ActivePerl5.12)上,它打印出:aaabbb

“^”字符将从@ARGV中抛出。 这个字符是我使用脚本的文件名的一部分,所以我需要能够从@ARGV读取它


我尝试使用“aaa”^bbb,但它只是打印出“aaa\bbb”。

不是ActivePerl丢弃
^
字符,而是Windows命令提示符:

C:\>echo aaa^bbb
aaabbb
你需要引用论点:

C:\>perl -e "print @ARGV" "aaa^bbb"
aaa^bbb
或者,您也可以使用第二个插入符号来避开它:

C:\>perl -e "print @ARGV" aaa^^bbb
aaa^bbb
插入符号
^
是一个转义字符,类似于Unix shell中的
\

它也不起作用。但是,您可以通过将参数转换为引号来绕过此问题:

perl -e "print @ARGV" "aaa^bbb"
在Windows7上使用草莓Perl,输出是

aaa^bbb