原文: https://beginnersbook.com/2017/05/use-strict-and-use-warnings-in-perl/

几乎每个 perl 脚本中都可以找到以下几行。

  1. use strict;
  2. use warnings;

在本文中,我们将逐一讨论它们。
注意:您可能无法在本网站提供的某些脚本中找到这些编译指示,这是为了避免与初学者混淆。但是,您会在高级主题上找到它们。

开始吧。

use strict

use strict语句称为pragma,它可以放在脚本的开头,如下所示:

  1. #!/usr/local/bin/perl
  2. use strict;

它做了什么?

它会强制您正确编码以使您的程序不易出错。例如:它强制您在使用它们之前声明变量。您可以使用my关键字声明变量。my关键字将变量的范围限制为局部。它使代码更易读,更不容易出错。

如果你没有使用my关键字声明变量,那么创建的变量将是全局的,你应该避免,将变量的范围缩小到需要它的位置是一个很好的编程习惯。

例:

如果使用use strict但不声明变量。

  1. #!/usr/local/bin/perl
  2. use strict;
  3. $s = "Hello!\n";
  4. print $s;

它会抛出这个错误:

  1. Global symbol "$s" requires explicit package name at st.pl line 3.
  2. Global symbol "$s" requires explicit package name at st.pl line 4.
  3. Execution of st.pl aborted due to compilation errors.

要避免错误,您必须使用my关键字声明变量。

  1. #!/usr/local/bin/perl
  2. use strict;
  3. my $s = "Hello!\n";
  4. print $s;

输出:

  1. Hello!

同样,您需要在使用它们之前声明数组和哈希值。

注意:从 Perl 5.12 开始,隐式启用此编译指令,这意味着如果您使用的是 Perl 5.12 或更高版本,则无需使用use strict作为编译指令,它默认情况下启用。

use warnings

这是另一个pragma,它们一起使用如下:

  1. #!/usr/local/bin/perl
  2. use strict;
  3. use warnings;

注意use warnings pragm在 Perl 5.6 中引入,所以如果你使用的是 Perl 5.6 或更高版本,就可以了。如果您使用的是旧版本,可以打开如下警告:将-w放在shebang行。

  1. #!/usr/local/bin/perl -w

即使在 Perl 5.6 或更高版本上,这也适用于任何地方。

use warnings有什么用?

它可以帮助您找到打字错误,它会在您看到程序出错时向您发出警告。它可以帮助您更快地找到程序中的错误。

注意:这里要注意的最重要的一点是use strict会在程序发现错误时中止程序的执行。另一方面,使用警告只会为您提供警告,它不会中止执行。

结论:

你应该总是在你的程序中使用这两个pragma,因为它是一个很好的编程习惯。