use strict; use warnings; use Scalar::Util qw( refaddr ); sub refaddr_pp { return if not ref $_[0]; return 0 + $_[0]; } my $obj = bless {}, 'Foo'; my $ref = {}; print 'refaddr $obj: ', refaddr($obj), "\n"; print 'refaddr_pp $obj: ', refaddr_pp($obj), "\n\n"; print 'refaddr $ref: ', refaddr($ref), "\n"; print 'refaddr_pp $ref: ', refaddr_pp($ref), "\n";