为什么我会收到此错误?
use strict;
use warnings;
my $str = <<str;
88087 23/11/2010
35192 25/07/2010
B3J 5X9 17/08/2011
C8U 5L6 16/08/2011
F4Q 3B4 17/10/2010
D3X 9P4 11/05/2010
O7L 6Z8 28/02/2010
W8L 9P2 05/09/2010
str
print $str;
my @arr = split/\n/,$str;
foreach (@arr) {
my @tmp = split/\t/;
print "$tmp[1]\n";
}
答案 0 :(得分:25)
你不应该有空格:
str
^
heredoc终结符本身应该在一行上,不应该有任何(甚至 space )围绕它。
答案 1 :(得分:1)
或者更好地使用Eclipse Perl Integration插件或Padre来编辑perl代码。 它显示了与语法相关的实时错误。
答案 2 :(得分:1)
您可以使用diagnostics获取有关警告消息的详细帮助:
找不到字符串终止符“str” 在EOF之前的任何地方 (F)Perl字符串可以在多条线上伸展。这个消息意味着 关闭分隔符被省略了。因为括号内的引号 计数 嵌套级别,以下缺少其最后的括号:
print q(The character '(' starts a side comment.);
<强>&GT;如果您从here-document获得此错误,则可能已包含此错误 在结束标记之前或之后看不见的空格。一个优秀的程序员 编辑器将帮助您找到这些角色。
Uncaught exception from user code:
在EOF之前的任何地方找不到字符串终结符“str”