#!/usr/bin/perl use warnings; use strict; my %hash1 = (a => 12, b => 15); my %hash2 = (a => 30, c => 17); my %merged = %hash1; $merged{$_} += $hash2{$_} for keys %hash2; use Data::Dumper; print Dumper \%merged;