in reply to Namespace for local/internal modules?

Indeed, Local:: is the namespace you should use for local things. There are a handful of modules in this namespace if you search CPAN, but if you look closely they're mostly in "examples" directories, not in "lib", so will usually not get installed.

local::lib and some of its friends are unfortunate. Technically they're not violating the rule, but on case-insensitive filesystems they might as well be.

If you have a CPAN ID yourself, you can always use your own CPAN ID (in all caps) as a namespace. Many people regard that as a namespace that 100% belongs to the owner of the CPAN ID. That is, I could release a module called TOBYINK::Monkey, but for anyone else to do so would be outrageous.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

Replies are listed 'Best First'.
Re^2: Namespace for local/internal modules?
by Anonymous Monk on May 23, 2012 at 23:29 UTC
    Thanks for the clarification about Local::. And I did not know about using CPAN ID's as top level namespaces. That seems more ideal since others can get at it. (One of the reasons I haven't released some of my better modules is that, especially for mathematical modules, there's no good name other than the thing being implemented like "Math::CholeskyDecomposition" or whatever, but there are multiple ways of doing math in perl (Math::GSL, PDL, Math::Matrix, straight vanilla perl, etc), so I don't want to usurp the namespace.)
Re^2: Namespace for local/internal modules?
by Anonymous Monk on May 24, 2012 at 00:37 UTC

    "If you have a CPAN ID yourself, you can always use your own CPAN ID (in all caps) as a namespace." -- tobyink.

    Blech! Aesthetic reasons alone are too strong for me then not to use "Local" instead.

Re^2: Namespace for local/internal modules?
by Anonymous Monk on May 24, 2012 at 00:21 UTC

    Technically they're not violating the rule

    There is no such rule

      s/rule/strong convention/
      perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

        Yes, I knew you wanted to say "convention", but it simply isn't a convention much less a "strong convention"

        You may have a rule for this, but it isn't widespread