Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^2: Module Naming Dilemma

by Ovid (Cardinal)
on Jan 05, 2005 at 03:07 UTC ( [id://419505]=note: print w/replies, xml ) Need Help??


in reply to Re: Module Naming Dilemma
in thread Module Naming Dilemma

package is a reserved word, so I won't use that. Second, this module only works for classes. It doesn't work for non-OO stuff. The reason is pretty straight-forward. To make it work for a procedural module, the syntax would be like this (picking "aliasing.pm" as a nice alternative):

use aliasing "Really::Long::Package::Name"; print Name::some_func();

In order to get that to work, I need to alias typeglobs together like namespace does. However, by literally pulling things from one namespace to another, I would break a lot of code that is expecting a particular namespace (whether or not it should is an argument for someone else.) Thus, the principle of least surprise tells me that I need this to work only for classes and I do this by simply providing a subroutine that returns the original class name.

Further, from my experience with code that's very similar to this, packages with long names are either procedural code that exports what I need (hence I don't usually use the package name after the first usage) or classes for which the aliasing code makes sense. I don't typically find cases where I need to do this:

my $foo = Really::Long::Package::Name::some_func();

Of course, your mileage may vary.

Cheers,
Ovid

New address of my CGI Course.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://419505]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2024-04-20 02:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found