2

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

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

奇怪的是,这只适用于我的主要功能。一旦我把它放在一个函数调用中,我就会得到这个错误:

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

这意味着它找不到 HEADER,即使它在那里。不能在函数(子程序)中使用自由格式文本吗?

4

1 回答 1

1

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

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

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

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

报价:

要记住的重要规则是,您使用与您开始时相同的单词来完成 here-doc,并且它必须单独在线

于 2010-11-14T21:06:25.013 回答