That's a bit of a good question, and I'm not the *best* person to ask,
as I have claimed a couple of high-level namespaces The simple answer
is "it depends."
* With MIME::Types, I basically claimed MIME::Type and MIME::Types and
forced ::MIME to be a module if anyone uses it. (But that's not a
subproject. However, if I ever *do* get around to doing the libmagic
stuff, it'll probably be MIME::Magic.)
* With Diff::LCS, I forced Diff to be a module, but chose to be more
* I went further with Archive::Tar::Minitar (obviously).
* PDF::Writer is perhaps the biggest claim, and it's not going to get
much better unless I come up with a cool project name to replace it. I
will be releasing PDF::Core, PDF::Writer, and PDF::Reader, all. I have
several utility items (PDF::Charts::*, PDF::SimpleTable, etc.) that
have sort of claimed space.
* color-tools has claimed the entire Color namespace (which, frankly, I
don't mind ;), but makes it a bit harder for others to use ::Color as
anything other than a module, and I "own" Color::RGB and Color::CMYK
and others as a result of it.
I can't see having done any of these any other way, though, since
although color-tools was originally made to support PDF::Writer, I want
it to be the premier colour conversion and management library in the
On the other hand, I'm working on a different library (also an offshoot
of PDF::Writer) that I've chosen an entirely different name for (and
even that may change if someone takes the name I've chosen or I find a
On 8/29/05, Kirk Haines <firstname.lastname@example.org> wrote:
On Monday 29 August 2005 8:41 am, Austin Ziegler wrote:
I would do the latter. That's more or less what I've done with both
Ruwiki and PDF::Writer as I've added mini-libs there, until those
libs grow up enough to demand their own space (which, so far, none of
them have ;).
Okay, now, a related question.
I'm a bit paranoid about namespace pollution. So, everything that
goes into IOWA is in an Iowa:: namespace. So, the database connection
pool is Iowa::DbPool. The web cache class is Iowa::Webcache and the
LRU class that it uses is Iowa::LRUCache. And so on.
Does anyone see any problem with keeping these in that Iowa::
namespace when released as standalone libraries? Keeping, for
example, the webcache, under Iowa:: makes sure that it won't butt
heads with someone else's web cache. Just calling it 'class Webcache',
Or should it be released as nothing more than a class file without any
installer, leaving it up to the user to make sure it doesn't butt
heads with something else? Anyone out there who might use this who
has an opinion?
Austin Ziegler * email@example.com
* Alternate: firstname.lastname@example.org