我有一个用于生成文件的 perl 脚本。我想嵌入一个查找表并读入哈希或数组。
例子:
__DATA__
a,0,0x0
p,0,0x8
s,0,0x6
pm,0,0x1fc0
pm,1,0x1f80
pm,2,0x1f00
我已经在使用 Text::CSV 来读取 CSV 文件。如何将数据读入哈希?如果它更容易,我可以添加标题行。
特殊文件句柄DATA
在该行之后指向您的脚本__DATA__
。如果您需要将其用作子例程或方法的参数,请使用 GLOB 印记:
subroutine(*DATA);
直接来自文档:
getline_hr
getline_hr () 和 column_names () 方法一起工作以允许您将行作为 hashrefs 返回。您必须首先调用 column_names () 来声明您的列名。
$csv->column_names (qw( code name price description ));
$hr = $csv->getline_hr ($io);
print "Price for $hr->{name} is $hr->{price} EUR\n";
如果在 column_names () 之前调用 getline_hr () 将发出嘶嘶声。
getline_hr_all
$arrayref = $csv->getline_hr_all ($io);
$arrayref = $csv->getline_hr_all ($io, $offset);
$arrayref = $csv->getline_hr_all ($io, $offset, $length);
这将返回对 getline_hr ($io) 结果列表的引用。在此调用中,keep_meta_info 被禁用。