如何在Perl中避免警告?

时间:2010-09-16 07:06:48

标签: perl warnings

我有一小段代码用于在像这样的文本文件中打印内容,

use strict;
use warnings;

open (FILE, "2.txt") || die "$!\n";

my $var = <FILE>;
while ($var ne "")
{
    print "$var";
    $var = <FILE>;
} 

文本文件是,

line 1
line 2
line 3 

运行代码后,我收到这样的警告,

line 1
line 2
line 3
Use of uninitialized value $var in string ne at del.pl line 10, <FILE> line 3.

如何克服此警告。

3 个答案:

答案 0 :(得分:8)

从文件中读取的常用习语是:

open my $fh, '<', $file or die $!;

while (defined(my $line = <$fh>)) {
    print $line, "\n";
}

虽然while循环隐式测试是否定义了赋值结果,但为了清楚起见,最好明确地进行测试。

答案 1 :(得分:3)

我总是使用:

while(<FILE>) {
 print $_;
}

没有这样的问题......

答案 2 :(得分:0)

最快的修复可能是替换

while ($var ne "")

while (defined $var)