in reply to OO - best way to have protected methods

See Private method variations for some more ideas.

Of the two you offered I would prefer the lexically scoped coderef because you can still use the $o->$add( 42 ) calling style and not worry about subclasses accidentally breaking your code.