- 论坛徽章:
- 0
|
请教如何比较两个hash是否相同?
不错。由于时间仓促没考虑到连接符的问题。现修正如下
#!/usr/bin/perl
#使用三个参数。hashcompare hash1,hash2,分割符
sub hashcompare {
list(@hasharray,$sep)=@_;
my $key1str=join $sep,keys(%{$hasharray[0]});
my $key2str=join $sep,keys(%{$hasharray[1]});
if($key1str eq $key2str)
{
$val1str=join $sep,values(%{$hasharray[0]});
$val2str=join $sep,values(%{$hasharray[1]});
if($val1str eq $val2str)
{
return 1;
}
else
{
return 0;
}
}
}
%hash1=("one"=>;1,"two"=>;2);
%hash2=("one"=>;2,"two"=>;2);
if(hashcompare(\%hash1,\%hash2,"|" )
{
print "两个hash相同\n";
}
else
{
print "两个hash不相同\n";
} |
|