尝试在Perl的子例程中打印自由格式文本时,我遇到了一个非常奇怪的错误。以下是我打电话的代码
print OUTFILE <<"HEADER";
The freeform text would go here
HEADER
奇怪的是,这只适用于我的功能。一旦我将它放入函数调用中,我就会收到此错误:
Can't find string terminator "HEADER" anywhere before EOF
意思是它找不到HEADER,即使它在那里。你能否在函数(子程序)中使用自由格式文本?
答案 0 :(得分:1)
确保在结束字符串标识符之前没有空格/制表符/缩进,即HEADER
。您的代码应如下所示:
function someFunc(){
print OUTFILE <<"HEADER";
The freeform text would go here
HEADER
}
请注意,HEADER
之前没有空格/制表符/缩进。它应该从它的第一个字符开始。
查看本教程以获取更多信息:
<强>引用强>
要记住的重要规则是 你使用相同的方式完成了here-doc 你开始说的话,它必须是 本身就行了