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"; #### refaddr $obj: 149445664 refaddr_pp $obj: 149445664 refaddr $ref: 149445904 refaddr $ref: 149445904