0

我有一个用于生成文件的 perl 脚本。我想嵌入一个查找表并读入哈希或数组。

例子:

__DATA__
a,0,0x0
p,0,0x8
s,0,0x6
pm,0,0x1fc0
pm,1,0x1f80
pm,2,0x1f00

我已经在使用 Text::CSV 来读取 CSV 文件。如何将数据读入哈希?如果它更容易,我可以添加标题行。

4

2 回答 2

0

特殊文件句柄DATA在该行之后指向您的脚本__DATA__。如果您需要将其用作子例程或方法的参数,请使用 GLOB 印记:

subroutine(*DATA);
于 2013-08-05T13:27:31.237 回答
0

直接来自文档

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 被禁用。

于 2013-08-05T13:20:48.117 回答