package SafeText; sub new { return bless \$_[1], $_[0] } ... package SafeURL; use Base 'SafeText'; sub forTextPlain { ... } sub forHTML { ... } ... package SafeXML; use Base 'SafeText'; sub forTextPlain { ... } sub forHTML { ... }