我有一个 csv,第一列是一个标签,后跟逗号分隔值:
LabelA,45,56,78,90
LabelB,56,65,43,32
LabelC,56,87,98,45
我希望第一列(LabelA 等)成为散列中的键,数值位于数组中。
我可以将文件读入数组或标量,但我不确定之后要做什么。建议??
编辑:
好的,看起来这会将值分配给一个键..但是我的示例中的逗号分隔数字又如何呢?他们要去哪?它们在 %hash 中吗?如果是这样,你能不能进一步简化你的解释?谢谢。
就我个人而言,我喜欢文本::CSV_XS and IO::File module:
use Text::CSV_XS;
use IO::File;
# Usage example:
my $hash_ref = csv_file_hashref('some_file.csv');
foreach my $key (sort keys %{$hash_ref}){
print qq{$key: };
print join q{,}, @{$hash_ref->{$key}};
print qq{\n};
}
# Implementation:
sub csv_file_hashref {
my ($filename) = @_;
my $csv_fh = IO::File->new($filename, 'r');
my $csv = Text::CSV_XS->new ();
my %output_hash;
while(my $colref = $csv->getline ($csv_fh))
{
$output_hash{shift @{$colref}} = $colref;
}
return \%output_hash;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)