my $devs= hashjoin( { version=>\%vers, module=>\%mod, memory=>\%mem } ); sub hashjoin { my( $in )= @_; my $out= {}; for my $attrib ( keys %$in ) { for my $item ( keys %{ $in->{$attrib} } ) { $out->{$item}->{$attrib}= $in->{$attrib}->{$item}; } } return $out; }