我正在尝试从包含三个逗号分隔的数字的单行文本文件中读取一行。它会是这样的:
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
是一个标量;不要试图像访问数组一样访问它的元素。