Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Top Level Module Namespace Table

by Xiong (Hermit)
on Feb 04, 2010 at 10:57 UTC ( #821356=perlquestion: print w/replies, xml ) Need Help??
Xiong has asked for the wisdom of the Perl Monks concerning the following question:

Naming Perl modules is a subset of Choosing Identifiers, with all that entails. Some general guidelines exist (and yes I've read them). Authors who intend to upload to CPAN are encouraged to submit modules to for review and suggestions on naming. CPAN Search itself does, of course, give helpful hints by example. But all this does not take the place of a straightforward top level module namespace table.

I gather that most experienced Perlers see no need for this table; they say, in essence, "It's obvious what to call a new module. If it works with GD, put it under the GD:: namespace."

I've discussed this table in several places and got comments in return that suggest I'm not being clear. So, here I insert a sort of stub or dummy of exactly what I seek:

This is not a real table. Do not use. Do not copy.

In the interest of terseness, words like "module(s)", "about", "related", "manipulate", and "interface with" are usually omitted.

Namespaces marked ('*') are deprecated, or probably should be deprecated.

Acme:: Joke and humor. Not for production code. Algorithm:: Algorithms, somewhat mathematical, that don't fit into other cats. Alien:: Perl modules that install non-Perl code. Apache:: Apache web server. Astro:: Astronomy, star charts. ... Bundle:: Modules to install sets of other modules. Business:: Handling money or time, mostly within the Western, white-collar office life. Carp:: Report errors from caller's location. Catalyst:: Catalyst web application framework. CGI:: Common Gateway Interface. CLI:: * see Getopt:: Config:: Configuration files. Crypt:: Cryptography. Data:: * ... Getopt:: Command line processing. GPS:: Global Positioning System. HTML:: HyperText Markup Language generation. Image:: Images, graphic files (GIF, JPEG, PNG, etc.) Also PerlMagick/ImageMagick. IO:: Input/Output (but see also File::). ...

You get the point.

If such a table exists, please be so kind as to push me that way. If not, I'll take suggestions on how to nurture its creation. At this point, I'm starting to think that this table does not exist; and my first thought is to set up a wiki page for the purpose.

Replies are listed 'Best First'.
Re: Top Level Module Namespace Table
by Old_Gray_Bear (Bishop) on Feb 04, 2010 at 12:05 UTC
    I'd be minded to build a Perl Module out of it and load it into the CPAN:: name space. A cursory look at CPAN didn't turn up your table, but talking to the CPAN testers/maintainers (barbie and ask come immediately to mind) might also be useful.

    I Go Back to Sleep, Now.


Re: Top Level Module Namespace Table
by Anonymous Monk on Feb 04, 2010 at 12:21 UTC

        Amazing how difficult it is for me to express myself precisely on this issue! I thought an example would be explicit. Sorry. Please allow me to attempt to improve.

        I'm well acquainted with CPAN Search; it's a great tool. I'm not sure how much an ordinary dev will want to use Parse::CPAN::Modlist; but that's cool. Both of these are solutions to the problem of I want to download a module that does This. They are statements of what is. This is a common problem and an important one; but it's not the issue I'm attempting to address.

        The table I seek is not descriptive but prescriptive. This is where the markers for deprecated namespaces come in.* This table goes no further than the top level of namespaces, perhaps some well-defined second levels (e.g., CGI::Application::). It's a statement of what should be.

        Reviewing the descriptions of existing modules is indeed a way to infer prescriptions for future efforts, I admit. By the same token, one course of bricks is a guide to placing the next. Yet, if we want a wall to stand neatly, we generally use a plumb line.

        I realize that I touch upon philosophical issues here.** My feeling is only that I will be more comfortable writing modules -- even modules that may never escape from my own project -- that are named in conformance with some plan.

        I'm coming rapidly to the belief that no such table exists (I'd like to be wrong!) and that creating it is a worthwhile project. I wrote the original node in hopes that Monks might suggest a good way to get it started.



Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://821356]
Approved by marto
Front-paged by Old_Gray_Bear
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (9)
As of 2017-04-29 15:00 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (532 votes). Check out past polls.