use warnings; use strict; package Soldier; use overload '0+' => \&truncate; my $soldier1 = {NAME => 'BENJAMIN', RANK => 'PRIVATE' , SERIAL => 151.11}; bless $soldier1; my $int = int($soldier1); print $int, "\n"; sub truncate { print "sub truncate called: ", int($_[0]->{SERIAL}), "\n"; return int($_[0]->{SERIAL}); } __END__ OUTPUTS: sub truncate called: 151 sub truncate called: 151 151