我正在使用GetOptions从perl
获取值GetOptions(
'lines=s'=>\$globallines,
);
这里,lines
是一个可选参数。当用户没有输入值时,我收到use of uninitialized variable
警告,我在if语句中使用lines
变量。我无法修复此警告。你能帮帮他吗?
对不起,如果这是一个愚蠢的问题,我是perl的新手。
if($globallines>0){#<SOME CODEEE>
答案 0 :(得分:1)
发生了什么 - 如果没有提供参数,则值未定义。 (不是零)。
因此,在数字上进行比较会产生错误。
有一些可能的解决方案,但最简单的是:
if ( $globallines and $globallines > 0 ) {
或者,如果未定义,可能只是初始化它:
$globallines //= 0; #sets it to zero if undef.
答案 1 :(得分:1)
如果-lines
选项是...... er ...可选(!),那么当省略该选项时,您希望该行为是什么?选择默认值并在调用GetOptions()
之前指定该值。
my $globallines = 0; # Or whatever value is appropriate
GetOptions(
'lines=s' => \$globallines,
);
此外,您不想lines=i
而不是lines=s
吗?这将确保您只获得一个整数。