原文: https://beginnersbook.com/2017/05/use-strict-and-use-warnings-in-perl/
几乎每个 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";
print $s;
它会抛出这个错误:
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";
print $s;
输出:
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
,因为它是一个很好的编程习惯。