# Foo.pm
package Foo;
use strict;
use warnings;
use DateTime;
sub new {
my $class = shift;
my $self = { _timevalue => DateTime->now, };
bless( $self, $class );
return $self;
}
# Modify _timevalue and return blessed reference
sub _dumper_hook {
$_[0] = bless {
%{ $_[0] },
_timevalue => $_[0]->{_timevalue}->ymd . q{ }
. $_[0]->{_timevalue}->hms,
},
ref( $_[0] );
}
1;
__END__
####
# Foo.t:
use strict;
use warnings;
use Data::Dumper;
use Test::More;
plan tests => 2;
use Foo;
my $f = Foo::->new;
{
local $Data::Dumper::Freezer = '_dumper_hook';
like(
Dumper($f),
qr/\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/,
q{prints short version}
);
}
unlike(
Dumper($f),
qr/\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/,
q{prints long version}
);
__END__
##
##
$ perl Foo.t
1..2
ok 1 - prints short version
ok 2 - prints long version
$