use namespace::clean;
use Devel::InnerPackage;
use Moose::Util;
+use Ref::Util qw(is_plain_hashref);
=head1 NAME
my %merged = %$lefthash;
for my $key ( keys %$righthash ) {
- my $right_ref = ( ref $righthash->{ $key } || '' ) eq 'HASH';
- my $left_ref = ( ( exists $lefthash->{ $key } && ref $lefthash->{ $key } ) || '' ) eq 'HASH';
+ my $right_ref = is_plain_hashref( $righthash->{ $key } );
+ my $left_ref = exists $lefthash->{ $key } && is_plain_hashref( $lefthash->{ $key } );
if( $right_ref and $left_ref ) {
$merged{ $key } = merge_hashes(
$lefthash->{ $key }, $righthash->{ $key }