用大括号指定的包在包含 __DATA__ 段时会报错
在我的Perl代码中,我正在编写一个 package,其中包含一个 __DATA__ 区段,用来嵌入一些Perl代码。
以下是引发错误的代码片段:
package remote {
__DATA__
print "$ENV{HOME}\n";
}
如下所示
Missing right curly or square bracket at ....
The lexer counted more opening curly or square brackets than closing ones.
As a general rule, you'll find it's missing near the place you were last editing.
我似乎找不到任何错配的括号。
相反地,当我不带大括号改写同一个包时,代码就能正常工作。
package remote;
__DATA__
print "$ENV{HOME}\n";
如果有经验的朋友能帮我指出我的理解差距,我将不胜感激。顺便提一句,若有帮助的话,我使用的Perl版本是5.36.1。
解决方案
Perl不会将位于 __DATA__ 这一行之后的内容视为代码。也就是说,它看不到结尾的 }。
数据:
__DATA__可用于指示在实际结束之前的脚本逻辑结束。任何随后的文本都将被解释器忽略, 除非程序按下述方式读取。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。