1use strict; 2use warnings; 3 4package Test::Deep::RefType; 5 6use Test::Deep::Cmp; 7 8use Scalar::Util qw( reftype ); 9 10sub init 11{ 12 my $self = shift; 13 14 $self->{val} = shift; 15} 16 17sub descend 18{ 19 my $self = shift; 20 21 my $got = shift; 22 23 my $exp = $self->{val}; 24 my $reftype = reftype($got); 25 26 return Test::Deep::descend($reftype, Test::Deep::shallow($exp)); 27} 28 29sub render_stack 30{ 31 my $self = shift; 32 my $var = shift; 33 34 return "reftype($var)"; 35} 36 37sub renderGot 38{ 39 my $self = shift; 40 41 my $got = shift; 42 43 $self->SUPER::renderGot(reftype($got)); 44} 45 461; 47