Perl use strict和use warnings,几乎每个 perl 脚本中都可以找到以下几行:
use strict;
use warnings;
在本文中,我们将逐一讨论它们。
注意:您可能无法在本网站提供的某些脚本中找到这些编译指示,这是为了避免与初学者混淆。但是,您会在高级主题上找到它们。
use strict
use strict
语句称为pragma
,它可以放在脚本的开头,如下所示:
#!/usr/local/bin/perl
use strict;
它做了什么?
它会强制您正确编码以使您的程序不易出错。例如:它强制您在使用它们之前声明变量。您可以使用my
关键字声明变量。my
关键字将变量的范围限制为局部。它使代码更易读,更不容易出错。
如果你没有使用my
关键字声明变量,那么创建的变量将是全局的,你应该避免,将变量的范围缩小到需要它的位置是一个很好的编程习惯。
示例如下,如果使用use strict
但不声明变量。
#!/usr/local/bin/perl
use strict;
s = "Hello!\n";
prints;
它会抛出这个错误:
Global symbol "s" requires explicit package name at st.pl line 3.
Global symbol "s" requires explicit package name at st.pl line 4.
Execution of st.pl aborted due to compilation errors.
要避免错误,您必须使用my
关键字声明变量。
#!/usr/local/bin/perl
use strict;
my s = "Hello!\n";
prints;
输出:
Hello!
同样,您需要在使用它们之前声明数组和哈希值。
注意:从 Perl 5.12 开始,隐式启用此编译指令,这意味着如果您使用的是 Perl 5.12 或更高版本,则无需使用
use strict
作为编译指令,它默认情况下启用。
use warnings
这是另一个pragma
,它们一起使用如下:
#!/usr/local/bin/perl
use strict;
use warnings;
注意:use warnings pragm
在 Perl 5.6 中引入,所以如果你使用的是 Perl 5.6 或更高版本,就可以了。如果您使用的是旧版本,可以打开如下警告:将-w
放在shebang
行。
#!/usr/local/bin/perl -w
即使在 Perl 5.6 或更高版本上,这也适用于任何地方。
use warnings
有什么用?
它可以帮助您找到打字错误,它会在您看到程序出错时向您发出警告。它可以帮助您更快地找到程序中的错误。
注意:这里要注意的最重要的一点是use strict
会在程序发现错误时中止程序的执行。另一方面,使用警告只会为您提供警告,它不会中止执行。
结论:
你应该总是在你的程序中使用这两个pragma
,因为它是一个很好的编程习惯。