# from Michael G Schwern # on Friday 02 December 2011 19:10: >> Module: I actually avoid using the term Module because I think it is >> often misused. I feel that a Module is a physical file (i.e. >> something that you "use"). But some folks use the terms Module and >> Package interchangeably. To be precise, CPAN (and Pinto) index >> Packages not Modules. So when you ask cpan[1] to install Foo::Bar, >> what you actually install is an Archive that contains some Module >> that provides Package Foo::Bar, and that Module may or may not be >> called Foo/Bar.pm. At least, that's how I understand it. > >Agreed that "module" is overloaded. I would associated it either with >the .pm file or with the distribution. Probably best to avoid it all > together.
True. But, what do you call: 1) The thing which is a first argument to use() ? (it's shaped like a package name, but means a file to be loaded (without accounting for subrefs in @INC)) 2) The "Foo/Bar.pm" argument to require() ? I would say that: 1) "Foo::Bar" in that usage is a "module name". 2) "Foo/Bar.pm" is a "module path" The distinction between a "module name" and a package, is that a module name can be translated into a module path with: ($name = $path . '.pm') =~ s{::}{/}g; --Eric -- Any sufficiently advanced incompetence is indistinguishable from malice. --The Napoleon-Clarke Law --------------------------------------------------- http://scratchcomputing.com ---------------------------------------------------