in reply to Why mock doesn't work in this case?
Son::new doesn't return the blessed object. Try:
sub new { *{'Father::alert'} = sub { print 'son' . $/; }; bless {}, Son; } [download]