Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Perl中为未使用的变量生成警告?_Perl_Variables_Warnings_Unused Variables - Fatal编程技术网

如何在Perl中为未使用的变量生成警告?

如何在Perl中为未使用的变量生成警告?,perl,variables,warnings,unused-variables,Perl,Variables,Warnings,Unused Variables,如何在Perl中为未使用的变量生成警告 my $var1 = 0; my $var2 = 10; printf("%d",$var2); 应生成$var1未使用的警告 编辑 我在脚本上尝试了perlcritic。它给出了以下几个警告: 这些都是什么意思?我没有看到任何未使用的变量警告 #Bareword file handle opened at line 98, column 9. See pages 202,204 of PBP. (Severity: 5) #Loop iterato

如何在Perl中为未使用的变量生成警告

my $var1 = 0;
my $var2 = 10;
printf("%d",$var2);
应生成
$var1
未使用的警告

编辑 我在脚本上尝试了
perlcritic
。它给出了以下几个警告: 这些都是什么意思?我没有看到任何未使用的变量警告

#Bareword file handle opened at line 98, column 9.  See pages 202,204 of PBP.  (Severity: 5)
#Loop iterator is not lexical at line 1068, column 5.  See page 108 of PBP.  (Severity: 5)
#Subroutine prototypes used at line 553, column 1.  See page 194 of PBP.  (Severity: 5)
#Two-argument "open" used at line 1072, column 5.  See page 207 of PBP.  (Severity: 5)

您应该看看perl模块,它就是为此而设计的


您也可以像amon在评论中所说的那样使用
perlcritic

关于使用
perlcritic
检测此问题:

我曲解了规则。它在这里不适用,因为该规则的当前实现将分配视为一种用途

也就是说,它在
my$unused上发出警告但不在
my$unused=1上

要使用perlcritic
,您可以请求一个严重性,范围从默认的“温和”
-5
到“野蛮”
-1

有关警告的简要说明:
  • 裸字文件句柄被认为是过时的。使用词汇变量,如
    打开我的$fh
    我的$line=

  • foreach
    样式的循环中使用默认的
    $\ucode>作为循环变量可能被认为是一种不好的做法。通常最好引入一个新的词汇变量,其作用域限于循环,如

    for my $pet (@pets) {
      $pet->feed($pet->favourite_treat);
    }
    
  • 子程序原型是子定义之后的paren中的东西,如
    sub foo(){…}
    。除非您已经知道原型在Perl中的作用,否则不要使用它们,只需
    sub-foo{…}

  • 执行
    打开
    之类的操作被认为是一种良好的做法

    open my $fh, "<", $filename or die "Can't open $filename: $!";
    

    打开我的$fh,“你已经知道Perl静态分析工具perlcritic了吗?你可以将它配置为发出这样的警告。我不知道。我会尝试这些。我误解了perlcritic提供的可能性,并对此发表了一篇综合评论作为“答案”。它还简要地解释了上面显示的perlcritic警告。