短小的Perl代码可以直接在Shell命令行中直接执行。例如:
perl -e ' print "hello world\n" '
这个示例在Linux系统的bash中运行无碍。
但拿到Windows系统的CMD窗口的命令行里,却反馈:
Can't find string terminator "'" anywhere before EOF at -e line 1.
在这行EOF之前没找到字串结束符号"'"(单引号)?搞什么鬼。
原来,在CMD窗口命令行里得使用双引号把整个Perl代码引起来。改成:
perl -e "print 'hello world\n' "
工作了,但单引号里面的\n不能转义。改成:
perl -e "print "hello world\n" "
没输出hello world。改成:
perl -e "print "hello world\n" "
终于得偿所愿。
上述示例在Linux和Windows系统还有一点细微的不同:
Linux上必须\n才能换行;
Windows上\n可省略,有则多空一行。