in reply to Re: Perl Naming Conventions
in thread Perl Naming Conventions

a thing I like to do is put a leading underscore on methods that should not be called directly e.g.
... sub external { ... _internal(); ... } sub _internal { }

this is just a hint to the class user, of course. I also do the same for function-style modules, I put required methods in EXPORT, internal functions in EXPORT_OK, and provide :std and :test tags in EXPORT_TAGS that are EXPORT and EXPORT_OK e.g.
@EXPORT = qw(external interface); @EXPORT_OK = qw(_internal _interface); %EXPORT_TAGS = (STD => \@EXPORT, TEST => \@EXPORT_OK);