use Tie::DxHash; tie my %hash, 'Tie::DxHash'; %hash = ( a => 1, a => 2, b => 2, b => 3, );