使用未初始化的变量警告

Use of uninitialized variable warning

我正在使用 GetOptions 从 perl 获取值

GetOptions(
       'lines=s'=>$globallines,
        );

这里,lines是一个可选参数。当用户未输入值时,我在 if 语句中使用 lines 变量时收到 use of uninitialized variable 警告。我无法修复此警告。你能帮帮他吗?

对不起,如果这是一个愚蠢的问题,我是 perl 的新手。

if($globallines>0){#<SOME CODEEE>

发生的事情是 - 如果没有提供参数,则该值未定义。 (不为零)。

所以比较数值会报错

有几种可能的解决方案,但最简单的是:

if ( $globallines and $globallines > 0 ) { 

或者如果未定义则可能只是初始化它:

$globallines //= 0; #sets it to zero if undef. 

如果 -lines 选项是……呃……可选的(!),当省略该选项时,您希望行为是什么?选择一个默认值并在调用 GetOptions().

之前分配它
my $globallines = 0; # Or whatever value is appropriate

GetOptions(
   'lines=s' => $globallines,
);

还有,你不想要 lines=i 而不是 lines=s 吗?这将确保您只得到一个整数。