【发布时间】:2018-06-06 17:59:07
【问题描述】:
我的数组是
my @arr = ('mars','earth','jupiter');
my @arr1 = ('mercury','mars');
my @arr2 = ('planet','earth','star','sun','planet2','mars');
%space = ( 'earth'=>{
'planet'=> {
'1' =>'US',
'2' =>'UK'
},
'planet2'=>{
'1' =>'AFRICA',
'2' =>'AUS'
}
},
'sun'=>{
'star' =>{
'1' =>'US',
'2' =>'UK'
}
},
'mars' =>{
'planet2' =>{
'1' =>'US',
'2' =>'UK'
}
}
);
现在我按以下方式比较前两个数组
foreach (@arr)
{
$arr_hash{$_} =1;
}
foreach my $name (keys %space)
{
foreach my $key (keys %{$space{$name}})
if ($arr_hash{$name} !=1)
{
#do something
}
现在我应该如何比较第三个数组?我正在尝试这样的事情
else
{
if($arr2_hash{$key}{$name} !=1)
{
#do something else
}
我想检查行星+地球对(例如 key1 和 key2 的组合应该与@arr2 中的第一个和第二个元素匹配)是否也存在于 %space 中? 有什么帮助吗?
【问题讨论】:
-
这就像一个家庭作业。昨天或前一天有人问过类似的问题。
-
@Andrey 你能指出我正确的方向吗?我真的很难让这件事继续下去。昨天问的那个问题是否有我当前查询的答案?
-
昨天问的答案有类似的哈希值。但任务不同:stackoverflow.com/questions/50701681/…
-
如果要比较 arr2 和 %space ,为什么需要 arr 和 arr1 ?
-
如果这是家庭作业,我可以理解为什么没有模块。但是没有子程序?这只是糟糕的软件工程。