Use Ref::Util where appropriate
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Utils.pm
index 9fb1e92..9cb0eb6 100644 (file)
@@ -13,6 +13,7 @@ use Class::Load ();
 use namespace::clean;
 use Devel::InnerPackage;
 use Moose::Util;
+use Ref::Util qw(is_plain_hashref);
 
 =head1 NAME
 
@@ -331,8 +332,8 @@ sub merge_hashes {
 
     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 }