在Perl函数中打印自由格式文本?

时间:2010-11-14 21:02:07

标签: perl indentation heredoc

尝试在Perl的子例程中打印自由格式文本时,我遇到了一个非常奇怪的错误。以下是我打电话的代码

    print OUTFILE <<"HEADER";
The freeform text would go here
HEADER

奇怪的是,这只适用于我的功能。一旦我将它放入函数调用中,我就会收到此错误:

Can't find string terminator "HEADER" anywhere before EOF

意思是它找不到HEADER,即使它在那里。你能否在函数(子程序)中使用自由格式文本?

1 个答案:

答案 0 :(得分:1)

确保在结束字符串标识符之前没有空格/制表符/缩进,即HEADER。您的代码应如下所示:

        function someFunc(){
          print OUTFILE <<"HEADER";
      The freeform text would go here
HEADER
        }

请注意,HEADER之前没有空格/制表符/缩进。它应该从它的第一个字符开始。

查看本教程以获取更多信息:

<强>引用

  

要记住的重要规则是   你使用相同的方式完成了here-doc   你开始说的话,它必须是   本身就行了