我已以下一种格式加载了数据(可能是从.csv
文件加载的::
my $data = [
[ 'id', 'name', 'value' ],
[ 23, 'foo', 77 ],
[ 44, 'bar', 'dfd' ],
]
我想访问以下数据:
$data->[1]{ name }
[我知道在旧的Perl中,我可以使用phash(伪哈希),但是它已被弃用,并由fields
编译指示替换。
据我所知,它用于对象。就我而言,我不创建对象也不使用类。
我应该如何在用例中使用fields
?请提供示例
使用fields
模块读取您的CSV数据,并根据第一行告诉它列名是什么:
Text::CSV_XS
不过,请考虑遍历记录而不是一次读取整个文件。请参阅#!/usr/bin/env perl
use strict;
use warnings;
use feature 'say';
use Text::CSV_XS;
my $csv = Text::CSV_XS->new({binary => 1, auto_diag => 1});
$csv->column_names($csv->getline(\*DATA));
my $data = $csv->getline_hr_all(\*DATA);
say $data->[0]->{'name'}; # prints foo
__DATA__
id,name,value
23,foo,77
44,bar,dfd
的文档以了解几种方法。