我试图在Windows 5.14.2上运行以下
C:\Perl>perl -e 'print "Hello World \n"' Can't find string terminator "'" anywhere before EOF at -e line 1.
我错过了什么?
cjm*_*cjm 28
你错过了一个体面的shell,它具有明智且定义明确的引用规则.在Windows上,只有双引号被视为引用,并且转义规则定义不明确且不一致.尝试:
perl -e "print qq{Hello World \n}"
Run Code Online (Sandbox Code Playgroud)
我强烈建议除了Windows上最简单的单行之外的任何东西.(Windows one-liners的另一个问题是Windows shell不会扩展通配符.如果*.txt在命令行上使用它,它将查找一个名为字面的文件*.txt.稍后你会遇到这个问题.)
在Windows上,您键入的内容相当于:
perl -e "'print" "Hello World \n'"
Run Code Online (Sandbox Code Playgroud)
也就是说,Perl的正试图执行的代码是'print用@ARGV含有单个字符串Hello World \n'.(这不是换行符,后面是反斜杠n).
| 归档时间: |
|
| 查看次数: |
21992 次 |
| 最近记录: |