Perl在字符串中使用未初始化的值

时间:2016-12-11 22:09:55

标签: perl

“在./script.pl第20行的字符串eq中使用未初始化的值$ str1”

我不确定为什么我会在第20行收到此错误,如果我发表评论20,它会消失:

 15 ######## HELP section ################
 16 #
 17 our @ARGV;
 18 our ( $str1, $str2 ) = @ARGV;
 19
 20 if ( $str1 eq "help" ) { &help(); }
 21
 22 if ( !$str1 ) { &help(); }
 23 #
 24 sub help {
 25         print <<EOF;
 26         +++++++++++++++++++++++++++++++++++++++++++++++++++
 27         +  usage:  $0 "cmd1,cmd2,cmd3" "host1,host2,host3"
 28         +++++++++++++++++++++++++++++++++++++++++++++++++++
 29 EOF
 30         exit 0;
 31         }

1 个答案:

答案 0 :(得分:2)

这不是错误,而是一个警告。这意味着&#34; $ str1&#34;未初始化,在这种情况下意味着没有为脚本指定命令行参数。

将第20行和第22行合并到

help() if ! $str1 || $str1 eq 'help';