在perl中解析哈希引用
我对perl哈希有疑问,对此的任何建议都非常感谢——下面只是代码片段-- 输出是这样的在perl中解析哈希引用,perl,Perl,我对perl哈希有疑问,对此的任何建议都非常感谢——下面只是代码片段-- 输出是这样的 $VAR1 = { a => 1, b => 2, g => 1, }; $VAR2 = { c => 1, d => 2, g => 1, b => 1434, h => 2 }; $VAR3 = { e => 1, a => 232, f => 2 }; $VAR4 = { g => 1, h => 2, a =>
$VAR1 = { a => 1, b => 2, g => 1, };
$VAR2 = { c => 1, d => 2, g => 1, b => 1434, h => 2 };
$VAR3 = { e => 1, a => 232, f => 2 };
$VAR4 = { g => 1, h => 2, a => 5, b => 19 };
注意:它是一个分号,而不是散列引用之间的逗号!!我的任务是从每个hashref中收集a和b值(如果hashref中不存在a或b,则将其替换为0)并将其存储在哈希中。如果hashref用逗号连接很容易,因为它是一个分号。尽管进行了多次尝试,但这对我来说非常困难,请帮助。您误解了
Data::Dumper
的输出。您需要将数组引用发送到转储程序函数:
print Dumper \@results;
否则,将发送阵列中要单独打印的元素列表
您应该得到如下输出:
$VAR1 = [
{
'a' => 1,
'g' => 1,
'b' => 2
},
{
'c' => 1,
'h' => 2,
'b' => 1434,
'g' => 1,
'd' => 2
},
{
'e' => 1,
'a' => 232,
'f' => 2
},
{
'a' => 5,
'h' => 2,
'b' => 19,
'g' => 1
}
];
不确定如何“将a和b值存储在散列中”,但这应该可以让您从以下内容开始:
for my $result (@results) {
my $a_val = $result->{a} || 0;
my $b_val = $result->{a} || 0;
# now do something with $a_val and $b_val ...
}
超级!我只是使用print语句来查看@results的输出,从这一点来看,我的@results=$sp->get\u list\u items($listid,$viewid);我不知道如何解释@results输出以创建由a和b组成的散列。非常感谢您的帮助。不客气。如果你觉得答案解决了你的问题,别忘了接受它。
我对你之前的答案很满意,但我的问题还没有解决--->从这一点上看,我的@results=$sp->get\u list\u items($listid,$viewid);我不知道如何解释@results输出以创建由a和b组成的散列
您迭代数组并收集a/b值,如果a/b值不存在,则收集0。你知道你不必在注释中使用代码格式。顺便说一句,@TOM,你不需要将整个注释标记为code
:)
for my $result (@results) {
my $a_val = $result->{a} || 0;
my $b_val = $result->{a} || 0;
# now do something with $a_val and $b_val ...
}