Perl并不抱怨​​丢失分号

我刚刚在Ubuntu上发现,Perl并没有抱怨最后的分号。检查以下代码:

#!/usr/bin/perl
use warnings;
use strict;

my @array = (1, 2, 3, 4);

foreach (@array)
{
    print $_."\n"
}

print "no, this cant be true"

请注意分号“;”从打印声明中缺少。仍然代码运行正常。

OUTPUT:

1
2
3
4
no, this cant be true

如果我打印后分号,它仍然可以工作。所以这是令我困惑的。

你能帮我理解我在这里丢失了什么,还是有一些我忽略的明显的Perl意识形态?

最佳答案
perldoc perlsyn

Every simple statement must be terminated with a semicolon, unless it is the final statement in a block, in which case the semicolon is optional.

您的打印声明是块中的最后一个语句。

不推荐使用分号。如果稍后再扩展块太容易忘了添加它。

转载注明原文:Perl并不抱怨​​丢失分号 - 代码日志