List::Compare can be helpful here. Just send the references to those three hashes to List::Compare's `get_intersection` method and it'll return the keys that those hashes have in common:

`use strict;
use warnings;
use List::Compare;
my %hash1 = ( A => 1, B => 2, C => 3, D => 4 );
my %hash2 = ( C => 30, D => 40, A => 10, B => 20 );
my %hash3 = ( F => 600, B => 200, A => 100, E => 500 );
my $lc = List::Compare->new( \%hash1, \%hash2, \%hash3 );
my @intersection = $lc->get_intersection;
if (@intersection) {
for my $key (@intersection) {
print "\%hash1: $key => $hash1{$key}\n";
print "\%hash2: $key => $hash2{$key}\n";
print "\%hash3: $key => $hash3{$key}\n";
print "\n";
}
}
else {
print "The three hashes don't share any common keys.\n";
}
`

Output:

`%hash1: A => 1
%hash2: A => 10
%hash3: A => 100
%hash1: B => 2
%hash2: B => 20
%hash3: B => 200
`

Comment onRe: Comparing keys in 3 different hashes and if they are the same them print the values on one lineSelectorDownloadCode