in reply to Understanding a OOP Code: Package declared within a Package

Hello sachinz2,

From perlmod#Packages:

Packages may themselves contain package separators, as in $OUTER::INNER::var. This implies nothing about the order of name lookups, however. There are no relative packages: all symbols are either local to the current package, or must be fully qualified from the outer package name down. For instance, there is nowhere within package OUTER that $INNER::var refers to $OUTER::INNER::var. INNER refers to a totally separate global package.

So, although package declarations can be nested using braces, they’re still independent of each other. That is, a pair of declarations like this:

package A { ... package B { ... } }

is really no different to this:

package A; ... package B; ...

(Note that the A::B syntax is used to specify where Perl looks for the package: in this case, it will look for package B in a subdirectory A of one of the directories specified in @INC. But from an OO point of view, packages A and B are unrelated.)

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,