我觉得这种错误信息在Perl里并不是经常遇到。至少我不记得此前见到过。 但在最近一个Perl培训课程中,它却给我上了一课。

这个错误比较烦人,尤其是代码非常简单时:

我盯着这段代码看了很久,没发现任何问题。 如你所见,它已经打印出来了字符串"Hello World"。

它令我倍受挫折,花了我相当长的时间才发现问题,可能你已经发现了:

问题在于use warnings语句之后少了个分号。Perl执行打印语句,它打印出来字符串的同时,print函数返回1表明执行成功。

Perl就认为我写了use warnings 1。

警告类型有很多,但是没有一个叫做"1"。

示例代码展示了字符串插值怎么工作。这是我在"Hello World"之后教的第二个例子。

当然,这只是由于遗漏分号引发的常见问题其中的特例。Perl只能在下一个语句处发现它。

通常检查一下错误信息提示行的上一行是个好办法。或许只是丢了个分号。