嗨我有两个哈希值%资产& %活性
%Asset
Name,Computer Name
David,X
Clark,Y
Sam,Z
%Activity
Name,Activity
David,A
Clark,B
Sam,C
David,D
Clark,E
Sam,F
第二个哈希的名称重复多次(可能超过2个)..我想得到一个简洁信息的哈希..像
Name,Computer Name,Activity
David,X,A&D
Clark,Y,B&E
Sam,Z,C&F
我在伪代码中的想法是这样的;
foreach (@Activity{qw[Name]}) {
push @Asset{qw[Name Activity]}, $Activity['Activity']
}
答案 0 :(得分:2)
你想要的是散列哈希。从概念上讲,您将有关资产的所有信息合并为一个哈希值。
my %dave = (
name => "Dave",
computer_name => "X",
activity => "A"
);
然后,这将进入一个更大的散列,其中包含由其名称键入的所有资产。
$Assets{$dave{name}} = \%dave;
如果你想找到Dave的活动......
print $Assets{Dave}{activity};
您可以提取有关Dave的所有信息并将其作为哈希引用传递。
my $dave = $Assets{Dave};
print $dave->{activity};
这种结构不可避免地导致将资产建模为对象。
您可以在Perl Data Structures Cookbook中了解有关哈希哈希的更多信息。