in reply to Comparing hash data
Of course, this is an O(m*n) operation for m keys in %sql and n keys in %csv. If %sql and %csv are very large, this might be a prohibative operation. If this is true, you might want to map the keys of %csv to the keys of %sql (assuming they are one to one) and then do a straight comparison.foreach my $sqlkey (keys %sql){ foreach my $csvkey (keys %csv){ next unless $csvkey =~ /$sqlkey\z/; # match end of sqlkey # code to compare $csv{$csvkey} & $sql{$sqlkey} and do other t +hings } }
my %sqltocsv = qw(EMP_NAME NAME EMP_JOB JOB ...); foreach $sqlkey (keys %sql){ if($sql{$sqlkey} eq $csv{$sqltocsv{$sqlkey}}){ # do things } }
|
|---|