perl - 从 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;
for 的括号open
放错了;事实上,你根本不需要它们。
$fn
是文件句柄,而不是文件名。不要尝试在die
消息中打印句柄。
$line
是一个标量;不要尝试像访问数组一样访问其中的元素。
推荐阅读
- javascript - 如何事件监听页面内点击的任何 html 标签,并输出其 id 属性的值
- kotlin - mutableList 的“plusAssign”和“add”(或 mutableMap 的“put”)有什么不同
- django - 在 django 管理站点上添加多个图像并显示在详细信息页面上
- angular - 如何在 Angular 中使用 Firebase 身份验证获取性别和生日?
- javascript - JavaScript:如何删除列名中的空格并使大小写不敏感
- c++ - 虚幻引擎中网格的多种颜色材质
- php - 如何将数据库数据存储到连接系统的局部变量中
- c# - 未定义或导入预定义类型“System.Object/String”
- vue.js - 类型错误:在 vue 中使用路由器链接时无法读取未定义的属性“_normalized”
- python - 无法通过脚本和 Synology API 生成共享链接