- package NAMESPACE BLOCK
Declares the BLOCK, or the rest of the compilation unit, as being in the given namespace. The scope of the package declaration is either the supplied code BLOCK or, in the absence of a BLOCK, from the declaration itself through the end of the enclosing block, file, or eval (the same as the
myoperator). All unqualified dynamic identifiers in this scope will be in the given namespace, except where overridden by another
A package statement affects dynamic variables only, including those you've used
localon, but not lexical variables, which are created with
state)). Typically it would be the first declaration in a file included by
use. You can switch into a package in more than one place, since this only determines which default symbol table the compiler uses for the rest of that block. You can refer to identifiers in other packages than the current one by prefixing the identifier with the package name and a double colon, as in
ThatPack::INPUT_HANDLE. If package name is omitted, the
mainpackage as assumed. That is,
$::sailis equivalent to
$main::sail(as well as to
$main'sail, still seen in ancient code, mostly from Perl 4).
If VERSION is provided,
$VERSIONvariable in the given namespace to a version object with the VERSION provided. VERSION must be a "strict" style version number as defined by the version module: a positive decimal number (integer or decimal-fraction) without exponentiation or else a dotted-decimal v-string with a leading 'v' character and at least three components. You should set
$VERSIONonly once per package.