- publishing free software manuals
Perl Language Reference Manual
by Larry Wall and others
Paperback (6"x9"), 724 pages
ISBN 9781906966027
RRP £29.95 ($39.95)

Sales of this book support The Perl Foundation! Get a printed copy>>>

package NAMESPACE VERSION

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 dynamic variables only, including those you've used local on, but not lexical variables, which are created with my (or our (or state)). Typically it would be the first declaration in a file included by require or 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 $SomePack::var or ThatPack::INPUT_HANDLE. If package name is omitted, the main package as assumed. That is, $::sail is equivalent to $main::sail (as well as to $main'sail, still seen in ancient code, mostly from Perl 4).

If VERSION is provided, package sets the $VERSION variable in the given namespace to a "new()" (version) in the Perl Library Reference Manual (Volume 1) object with the VERSION provided. VERSION must be a "strict" style version number as defined by the "new()" (version) in the Perl Library Reference Manual (Volume 1) 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 $VERSION only once per package.

See "Packages" (perlmod) in the Perl Library Reference Manual (Volume 2) for more information about packages, modules, and classes. See 8 for other scoping issues.

ISBN 9781906966027Perl Language Reference ManualSee the print edition