【发布时间】:2019-03-19 21:32:03
【问题描述】:
我有一个代码,我想从命令行使用 perl 的 -e 选项进行调试。 (准确地说,来自 Mac OS 终端)
当我调用这样的子程序时,我忘记正确匹配双引号,有点像这样:
perl -e "print lc "Hello-World\n""
#Output: 0
看到0 我很惊讶,但仔细观察后,我发现我的双引号有问题。不出所料,使用外部单引号解决了这个问题
perl -e 'print lc "Hello-World\n"'
# Output(fixed): hello-world
现在我看到了问题所在,我很高兴看到它首先返回了0。看起来 bash 执行了某种减法运算,因为如果我重复同样的错误,因为那里没有破折号,即使使用错误的双引号,我也不会遇到这个问题:
perl -e "print lc "HelloWorld\n""
^ closing the quotes too soon
#Output: helloworldn
那么为什么perl -e "print lc "Hello-World\n"" 这个语法会打印 0 呢?
【问题讨论】:
-
我不这么认为,但我不想花时间在上面。删除了我的第二条评论,并将很快删除。祝你好运。