I think the second example in your post is the usual behavior in any OO language. I would advice you to use croak() or confess() - from Carp - in place of die().
Igor S. Lopes - izut surrender to perl. your code, your rules.
Comment on Re: OO - best way to have protected methods