Perl5 リファレンス


       package NAMESPACE
               Declares the compilation unit as being in the
               given namespace.  The scope of the package
               declaration is from the declaration itself through
               the end of the enclosing block, file, or eval (the
               same as the `my' operator).  All further
               unqualified dynamic identifiers will be in this
               namespace.  A package statement affects only
               dynamic variables--including those you've used
               `local' on--but not lexical variables, which are
               created with `my'.  Typically it would be the
               first declaration in a file to be included by the
               `require' or `use' operator.  You can switch into
               a package in more than one place; it merely
               influences which symbol table is used by the
               compiler for the rest of that block.  You can
               refer to variables and filehandles in other
               packages by prefixing the identifier with the
               package name and a double colon:
               `$Package::Variable'.  If the package name is
               null, the `main' package as assumed.  That is,
               `$::sail' is equivalent to `$main::sail' (as well
               as to `$main'sail', still seen in older code).

               If NAMESPACE is omitted, then there is no current
               package, and all identifiers must be fully
               qualified or lexicals.  This is stricter than `use
               strict', since it also extends to function names.

               See the Packages entry in the perlmod manpage for
               more information about packages, modules, and
               classes.  See the perlsub manpage for other
               scoping issues.