如何解决将哈希保存在特定标题下的csv文件中
我有一个哈希,格式为
$VAR1 = {
'ALPA' => 51,'BETA' => 39
};
我想用标头alpha和beta的形式将cash中的哈希保存为
ALPA BETA
51 39
由于我是perl的新手,请指导我。
解决方法
如果要以csv格式输出,我将使用
my $VAR1 = {
'ALPA' => 51,'BETA' => 39
};
my @k = (); # remember all the keys
my @v = (); # remember all the values in corresponding order
foreach my $k (keys(%{$VAR1})) {
push(@k,$k);
push(@v,$VAR1->{$k});
}
print(join(",",@k) . "\n"); # concat with comma in between
print(join(",@v) . "\n");
在我的计算机上,此结果
BETA,ALPA
39,51
如果希望输出为制表符分隔的值,则可以将,
函数中的join
替换为\t
。
但是,据我所知,您永远无法在哈希变量声明中保留键值对的顺序。如果确实需要,则需要另一个数组以正确的顺序存储所有键。
,CSV代表“逗号分隔值”,在您的输出中没有逗号
请检查以下示例代码是否符合您的要求
use strict;
use warnings;
use feature 'say';
my %hash = (
'ALPA' => 51,'BETA' => 39
);
say join(',',keys %hash);
say join(',values %hash);
输出
ALPA,BETA
51,39
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。