Извлечение данных из списка соединений построчно с использованием perl

Мой вопрос касается извлечения данных из файла в Perl. В прикрепленном файле стандартный формат списка сетей. После запуска программы я получил элементы в массив @name_gate но когда я пытался print @name_gate[0] вместо 1-го элемента я получил весь первый столбец, аналогично для @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 и т. Д. Вот текущий вывод

1 ответ

@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";

}
Другие вопросы по тегам