2013-08-05 2 views
0

У меня есть скрипт perl, который я использую для создания файлов. Я хотел бы встроить таблицу поиска и прочитать хэш или массив.perl csv данные, встроенные в скрипт

Пример:

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

Я уже использую Text :: CSV для чтения файла CSV. Как читать данные в хэш? Я могу добавить строку заголовка, если это упростит.

+0

В чем колонка index/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); 
Смежные вопросы