Читать одну строку из однострочного текстового файла в формате CSV - PullRequest
1 голос
/ 08 января 2020

Я пытаюсь прочитать строку из однострочного текстового файла, содержащего три числа, разделенные запятыми. Это было бы так:

40045,47250,400

Я несколько дней возился с этим, пробуя различные комбинации, которые я нашел в Интернете. Вот что у меня есть:

open(my $fn, '<', 'prgcfg.txt' or die "Could not open configuration file: '$fn' $!");
my $line = <$fn>;
chomp $line; 
close $fn; 
my ($n,$e,$g) = split /,/,$line[1];

Три скаляра в последней строке объявлены над этим. Это всегда генерирует ошибку независимо от того, что я пытаюсь. Есть идеи?

Спасибо!

1 Ответ

3 голосов
/ 08 января 2020

Предполагая, что ваши сообщения об ошибках и предупреждения были отправлены с use strict; use warnings;, вы можете устранить их с помощью следующих изменений:

use warnings;
use strict;

open my $fn, '<', 'prgcfg.txt' or die "Could not open configuration file $!";
my $line = <$fn>;
chomp $line; 
close $fn; 
my ($n,$e,$g) = split /,/, $line;

Скобки для open не указаны; на самом деле они вам вообще не нужны.

$fn - это дескриптор файла, а не имя файла. Не пытайтесь напечатать маркер в сообщении die.

$line - скаляр; не пытайтесь получить доступ к его элементу, как к массиву.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...