>Michael Fowler sent the following bits through the ether:

>> Personally, I think FindBin is a bit of a sore thumb.  Its name, the
>> capitalization of its variable names

>I suppose we could try and define some Perl Naming Conventions - ie
>instead of DumpCore() we should have dump_core(). 

Agreed completely.  This was a complaint I heard at TPC: that the
core modules were inharmonious in this regard, and that they thus
needed homogenization.  It's hard to back-fit changes, so it's more
important that naming conventions be followed when the module first
gets wrapped into the core.

Camel 3 (and many other things) reads:

    =item *

    While short identifiers like C<$gotit> are probably okay, use underscores
    to separate words.  It is generally much easier to read
    C<$var_names_like_this> than C<$VarNamesLikeThis>, especially for
    non-native speakers of English.  Besides, the same rule works for
    C<$VAR_NAMES_LIKE_THIS>.

    Package names are sometimes an exception to this rule.  Perl informally
    reserves lowercase module names for pragmatic modules like C<integer>
    and C<strict>.  Other modules should begin with a capital letter and use
    mixed case, but probably without underscores due to name-length
    limitations of some primitive filesystems.

    =item *

    You may find it helpful to use letter case to indicate the scope  or
    nature of a variable. For example:

        $ALL_CAPS_HERE   # constants only (beware clashes with Perl vars!)  
        $Some_Caps_Here  # package-wide global/static 
        $no_caps_here    # function scope my() or local() variables

    For various vague reasons, function and method names seem to
    work best as all lowercase.  For example, C<< $obj->as_string() >>.

    You can use a leading underscore to indicate that a variable
    or function should not be used outside the package that defined
    it.  (Perl does not enforce this; it's just a form of documentation.)

--tom

Reply via email to