Извлечение данных из списка соединений построчно с использованием 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";
}