我刚刚在我的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"
Run Code Online (Sandbox Code Playgroud)
请注意分号";" print语句中缺少.代码运行良好.
OUTPUT:
1
2
3
4
no, this cant be true
Run Code Online (Sandbox Code Playgroud)
如果我在打印后加分号,它仍然有效.所以这让我很困惑.
你能帮我理解我在这里缺少什么,还是有一些我忽略的明显的Perl意识形态?
Que*_*tin 51
每个简单语句必须以分号结束,除非它是块中的最后一个语句,在这种情况下分号是可选的.
您的print语句是块中的最后一个语句.
不推荐省略分号.如果稍后扩展块,很容易忘记添加它.
Mat*_*ton 12
我经常认为Perl中的分号是分隔符而不是终结符 - 这使得这种行为更容易习惯.
也就是说,总是使用分号并不是一个坏主意,因为如果你在块的末尾添加更多语句,就不必记得稍后添加它,有点像在列表中使用额外的逗号,所以您不要忘记稍后添加(如果后面没有列表项,Perl会忽略最后一个逗号).