打印<

时间:2013-08-20 08:10:40

标签: perl

这里我要打印'$'符号。怎么做?

 #!/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

我想打印$。

2 个答案:

答案 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中有解决方案。