use strict; $^W++; package A; use overload '""' => sub { overload::StrVal(shift) . 'xx' }; package B; @B::ISA = 'A'; package main; my $a = bless \(my $aa = 'abc'), 'A'; print "$a\n"; bless $a, 'B'; # re-bless print "$a\n";