in reply to Guaranteed unused namespace on CPAN

Local::* is reserved for this purpose. From The Perl 5 Module List (Part 1, section 2.5):

If developing modules for private internal or project specific use, that will never be released to the public, then you should ensure that their names will not clash with any future public module. You can do this either by using the reserved Local::* category or by using an underscore in the top level name like Foo_Corp::*.

My parents just came back from a planet where the dominant life form had no
bilateral symmetry, and all I got was this stupid F-Shirt.

Replies are listed 'Best First'.
Re: Guaranteed unused namespace on CPAN
by Abigail-II (Bishop) on Dec 10, 2003 at 17:08 UTC
    The second suggestion is violated by the standard distribution (AnyDBM_File, GDBM_File, NDBM_File, SDBM_File), although it could be argued they are just .pm files, and don't use class names with '::' in them. But a quick scan of the file sources/modules/02packages.details.txt.gz shows several name spaces that use an underscore in the first component. (CDB_File, DB_File, DWH_File, heavy_template).

    I think that in theory the way Perl and CPAN works is that it is very hard to make sure there are no name clashes. I think that practise has shown that there's not much of a problem.

    Abigail