从 CSV 格式的单行文本文件中读取一行



我正在尝试从包含三个逗号分隔的数字的单行文本文件中读取一行。它会是这样的:

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];

最后一行中的三个标量在此之上声明。无论我尝试什么,它总是会生成错误。有什么想法吗?

谢谢!

假设您的错误和警告消息源自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是一个标量;不要试图像访问数组一样访问它的元素。

最新更新