我想比较两个数组散列,看看它们是否相等。也就是说,键值应该包含相同的元素。
my %h1 = (
w1 => ['3','1','2'],
e2 => ['6','2','4'],
r1 => ['8', '1'],
);
my %h2 = (
w1 => ['3','1','2'],
e2 => ['6','2','4'],
r1 => ['8','1'],
);
my %h3 = (
w1 => ['3','1','2'],
e2 => ['6','2','4'],
r1 => ['4','1'],
);
my $i = 0;
foreach ( keys %h2 ){
my $conditional = scalar keys %h2; # 3
if ([sort @{$h1{$_}}] ~~ [sort @{$h2{$_}}]) {
$i++;
}
if ($i eq $conditional){
print "true\n";
}
}
比较%h1
并且%h2
应该返回 true,因为它们是相等的。比较%h1
和%h3
打印什么。1)有没有更好的方法来做到这一点?
编辑
我想在不使用模块中的函数的情况下做到这一点。