使用未初始化的变量警告
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
吗?这将确保您只得到一个整数。
我正在使用 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
吗?这将确保您只得到一个整数。