2013-08-05 73 views
0

我有一個用於文件生成的perl腳本。我想嵌入一個查找表並讀入散列或數組。Perl腳本中嵌入的csv數據

例子:

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

我已經使用文字:: CSV用於讀取CSV文件。如何將數據讀入散列?如果它更容易,我可以添加一個標題行。

+0

什麼是索引/ id列?這將是強制性的閱讀這個哈希。否則,也許你的意思是一組哈希? –

回答

0

直起documentation

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"; 

getline_hr()會發牢騷,如果COLUMN_NAMES前稱爲()。

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

0

特殊文件句柄DATA指向__DATA__行後面的腳本。如果您需要將其用作子程序或方法的參數,請使用GLOB印記:

subroutine(*DATA);