在连接(。)或字符串中使用未初始化的值

时间:2013-03-15 05:45:00

标签: perl

我刚刚在perl初学者并编写一小段代码。添加\ n后,我收到以下错误。请在下面找到表格格式。我正在尝试获取(2和3列) 来自index.I之后的temp.txt。我正试图进入前两行。

正如我所提到的,当我在代码

中添加\ n时出现错误
Error : Use of uninitialized value in concatenation (.) or 
        string at temp.pl line 10, <$fh2> line 300.


#! /usr/bin/perl

use strict;
use warnings;

my @data;
open(my $fh2,'<',"temp.txt") or die "Could not open file";
while(my $line =<$fh2>){
     @data =split(/\s+/,$line);
    print  "$data[2]  $data[3]";
    print "\n";
}


      Table format is:
      $DATA1 SOURCE='XtA' VERSION='G-2014.06'
    .TITLE '%curve%'
     index            temp1             temp2          temp3          
                      alter#          
     1               -1.5750000e+00   -3.2053667e+00   -4.0000000e+01  
                       1.0000000e+00(temp4)  

     2               -1.5272727e+00   -2.9323414e+00   -4.0000000e+01  
                       1.0000000e+00  

     3               -1.4795454e+00   -2.6579232e+00   -4.0000000e+01  
                       1.0000000e+00  

    ....................................upto 99 


      temp1  temp2
      <val1>  <val2>

2 个答案:

答案 0 :(得分:2)

分手后: if(标量(@data)== 4){

然后是您的打印代码

}

因为您不知道$ data [3]或$ data [2]是否存在。

答案 1 :(得分:0)

您需要向我们提供完整的错误。您应该编辑问题,然后剪切并粘贴确切的错误,包括行号。然后,告诉我们文件中的哪一行。

有可能该文件中的某些数据少于4个字段。因此,拆分将3个或更少的标量返回到@data。然后,当您尝试引用$ data [3]时,这是一个未初始化的值。