0

我的问题是关于从 Perl 文件中提取数据。附件中有标准格式的网表。运行程序后,我将元素放入一个数组中@name_gate,但是当我尝试print @name_gate[0]而不是第一个元素时,我得到了整个第一列,类似地@name_gate[1],第二列。

所以问题是我又得到了一个字符串@name_gate[0],我想在其中逐个访问元素。

my @ind;
my $index=0;
my $file = 'netlist.txt';
my $count=0;
my @name_gate;
open my $fh,'<',$file or die "could not open the file '$file' $!";

while (my $line = <$fh>) 
     {
         chomp $line;
         @name_gate = split (/ /,$line); #transforming string into arrays

         print "@name_gate[0]";
     }

上面的代码打印整列 1 2 3 4 到 14。如何提取单个元素,如 1 或 2 或 14 等。这是当前输出

4

1 回答 1

3

@name_gate[0]这不是主要问题。因为有了警告(Scalar value @ary[0] better written as $ary[0] at),它就会给出结果。

我以为你的问题出在split. 因为您的输入文件有多个空格或制表符分隔。所以请包含\s+或更好地使用\t. 你会得到结果。

然后总是把使用警告使用严格放在程序的顶部,

while (my $line = <$fh>) 
{
     chomp $line;

      #my @name_gate = split (/ /,$line); #transforming string into arrays

      my @name_gate = split (/\s+/,$line);

      #print "@name_gate[0]\n";

      print "$name_gate[0]\n";

}
于 2017-03-27T06:44:36.023 回答