+ -
当前位置:首页 → 问答吧 → use of uninitialized value in scalar chomp错误

use of uninitialized value in scalar chomp错误

时间:2011-07-13

来源:互联网

脚本如下:
Perl code
#!/usr/bin/perl -w
#use strict;
$command = "\"".$ARGV[0]."\"";
print $command."\n";
open (FH1,"./openfile.pl $command| ") or die "open file error";

while(my $line = <FH1>){
    chomp $line;
    if($line =~/: ([\d|.]+)$/){
        my $ip=$1;
        while($line=<FH1>){
            print  $ip.":     ".$line if $line=~/pid/ ;
            last if $line=~/\s+\d+,/ ;
            }
            redo;
        }
    }

想将openfile.pl脚本的执行结果管道出来,提取想要的结果.
运行时能得到想要的结果,同时提示:
Use of uninitialized value in scalar chomp at ./scan.pl line 8, <FH1> line 10.
Use of uninitialized value in pattern match (m//) at ./scan.pl line 9, <FH1> line 10.
....
Use of uninitialized value in scalar chomp at ./scan.pl line 8, <FH1> line 137.
Use of uninitialized value in pattern match (m//) at ./scan.pl line 9, <FH1> line 137.
请问这是什么原因,该如何解决?请高手帮忙解答,谢了

作者: heartgoon2010   发布时间: 2011-07-13

出错信息很明白啊。就是你在操作一个undefined值。
话说你这脚本难道不会死循环吗?

作者: iambic   发布时间: 2011-07-13