以下代码只在mac上有效,在windows7上无效。
perl -e "print @ARGV" aaa^bbb
在 Mac(perl 5.10,darwin)上它按预期打印:aaa^bbb
在 Windows 7,32 位 (ActivePerl 5.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 - 事件 perl 从 @ARGV 中删除 "^",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7427052/