这里我要打印'$'符号。怎么做?
#!/perl/bin/perl
print <<EOF;
This sign $ is called dollar
It's a multiline
string
EOF
这给了我结果。
This sign is called dollar
It's a multiline
string
我想打印$。
答案 0 :(得分:6)
使用EOF
相当于"EOF"
- 此处的文档内插,就像双引号一样。反斜杠美元符号\$
或明确使用单引号来抑制插值。
print << 'EOF';
...
EOF
答案 1 :(得分:3)
在启用use warnings
的情况下运行代码会让我知道:
Name "main::is" used only once: possible typo at foo.pl line 8.
Use of uninitialized value $is in concatenation (.) or string at foo.pl line 8.
This sign called dollar
It's a multiline
string
正如您所看到的,is
已从句子中消失,美元符号也是如此。警告告诉我原因:在字符串中找到变量$is
。由于它是空的,它被空字符串取代。因为你没有打开警告,所以这是安静地完成的。
道德是:始终使用use warnings
。在这种情况下也有益use strict
,因为它会导致脚本由于未声明的变量$is
而导致编译失败。
关于如何修复它,我相信choroba在his answer中有解决方案。