首先答案是否定的。perl以灵活著称,不会限制我们一使用if就要用上花括号的。
我们在使用c++语言等编程语言的时候,如果if语句块中只有一个语句时,那么if语句需要的花括号可以省略。
在perl,用if前置结构时必须使用花括号,用if后置结构的时候则不必用花括号。
见代码:
#!/usr/bin/perl $a = 0; $b = 1; if(0 == $a){ print qq($a\n); } print qq($b\n) if(1 == $b); #!输出的结果是:
xy@ubuntu:~/perl代码$ perl if结构 0 1可以看到不加花括号也正常运行了。
当if语句块有多个语句时,这个问题就不用讨论了,这里讨论的是if语句块只有一个语句的情况。
在前置的if结构中(即第一个if用法),perl将if的语句块视为block,而perl规定块必须是以花括号括起来了的。所以这个花括号是必须的。
而后者的if结构中(即第二个if用法,也有网友称为定语后置),则不需要花括号。注意这种写法相当于一个if就一个语句。
同此理,在while,for等的花括号请不要试图省略。