in reply to inheritance turns back and bites

  1. The $answer object is using its own method instead of SomeData's method
  2. Use Class::MultiMethods, or less elegantly
    sub add { @_ > 2 && return $_[0]->SUPER::add(@_[1 .. $#_]); ... }
  3. Don't use parameter based dispatch in perl ;)
HTH

_________
broquaint