gpt4 book ai didi

perl - "use warnings"可以只在一个子程序中吗?

转载 作者:行者123 更新时间:2023-12-03 18:10:51 28 4
gpt4 key购买 nike

我正在编写一个大约 4000 行的 Perl CGI 脚本。我们的编码风格包括 use strictuse warnings通常,但在这个特定的(相当旧的)文件中,“使用警告”被注释掉,注释说明启用警告会淹没 Apache 日志。

现在我计划将一些代码分离到一个新的子程序中。我要use warnings至少在那里。如何安全地限制 use warnings 的影响一个子程序?将只是放置use子程序内的子句能完成这项工作吗?

最佳答案

是的,使用use warning将在您编写它的范围内。

写作 use warning在 sub 内只会影响给定例程(或块)。

示例片段

sub foo {
use warnings;
print my $a;
}

{
use warnings;
print my $b;
}

foo;

print my $c;

输出
Use of uninitialized value $b in print at foo.pl line 8.
Use of uninitialized value $a in print at foo.pl line 3.

请注意,在使用 print my $c 时不会发出警告。 .

文档是怎么说的?
  • perldoc.perllexwarn

    This pragma works just like the strict pragma. This means that the scope of the warning pragma is limited to the enclosing block. It also means that the pragma setting will not leak across files (via use, require or do). This allows authors to independently define the degree of warning checks that will be applied to their module.

  • 关于perl - "use warnings"可以只在一个子程序中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9699627/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com