Add built local::lib
[catagits/Gitalist.git] / local-lib5 / man / man3 / PPI::Statement::Package.3pm
1 .\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.10)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el       .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD.  Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 .    de IX
53 .    tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 .    nr % 0
56 .    rr F
57 .\}
58 .el \{\
59 .    de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
65 .    \" fudge factors for nroff and troff
66 .if n \{\
67 .    ds #H 0
68 .    ds #V .8m
69 .    ds #F .3m
70 .    ds #[ \f1
71 .    ds #] \fP
72 .\}
73 .if t \{\
74 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 .    ds #V .6m
76 .    ds #F 0
77 .    ds #[ \&
78 .    ds #] \&
79 .\}
80 .    \" simple accents for nroff and troff
81 .if n \{\
82 .    ds ' \&
83 .    ds ` \&
84 .    ds ^ \&
85 .    ds , \&
86 .    ds ~ ~
87 .    ds /
88 .\}
89 .if t \{\
90 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 .    \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 .    \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 .    \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 .    ds : e
114 .    ds 8 ss
115 .    ds o a
116 .    ds d- d\h'-1'\(ga
117 .    ds D- D\h'-1'\(hy
118 .    ds th \o'bp'
119 .    ds Th \o'LP'
120 .    ds ae ae
121 .    ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "PPI::Statement::Package 3"
127 .TH PPI::Statement::Package 3 "2009-08-08" "perl v5.8.7" "User Contributed Perl Documentation"
128 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 PPI::Statement::Package \- A package statement
134 .SH "INHERITANCE"
135 .IX Header "INHERITANCE"
136 .Vb 4
137 \&  PPI::Statement::Package
138 \&  isa PPI::Statement
139 \&      isa PPI::Node
140 \&          isa PPI::Element
141 .Ve
142 .SH "DESCRIPTION"
143 .IX Header "DESCRIPTION"
144 Most PPI::Statement subclasses are assigned based on the value of the
145 first token or word found in the statement. When \s-1PPI\s0 encounters a statement
146 starting with 'package', it converts it to a \f(CW\*(C`PPI::Statement::Package\*(C'\fR
147 object.
148 .PP
149 When working with package statements, please remember that packages only
150 exist within their scope, and proper support for scoping has yet to be
151 completed in \s-1PPI\s0.
152 .PP
153 However, if the immediate parent of the package statement is the
154 top level PPI::Document object, then it can be considered to define
155 everything found until the next top-level \*(L"file scoped\*(R" package statement.
156 .PP
157 A file may, however, contain nested temporary package, in which case you
158 are mostly on your own :)
159 .SH "METHODS"
160 .IX Header "METHODS"
161 \&\f(CW\*(C`PPI::Statement::Package\*(C'\fR has a number of methods in addition to the standard
162 PPI::Statement, PPI::Node and PPI::Element methods.
163 .SS "namespace"
164 .IX Subsection "namespace"
165 Most package declarations are simple, and just look something like
166 .PP
167 .Vb 1
168 \&  package Foo::Bar;
169 .Ve
170 .PP
171 The \f(CW\*(C`namespace\*(C'\fR method returns the name of the declared package, in the
172 above case 'Foo::Bar'. It returns this exactly as written and does not
173 attempt to clean up or resolve things like ::Foo to main::Foo.
174 .PP
175 If the package statement is done any different way, it returns false.
176 .SS "file_scoped"
177 .IX Subsection "file_scoped"
178 Regardless of whether it is named or not, the \f(CW\*(C`file_scoped\*(C'\fR method will
179 test to see if the package declaration is a top level \*(L"file scoped\*(R"
180 statement or not, based on its location.
181 .PP
182 In general, returns true if it is a \*(L"file scoped\*(R" package declaration with
183 an immediate parent of the top level Document, or false if not.
184 .PP
185 Note that if the \s-1PPI\s0 \s-1DOM\s0 tree \fBdoes not\fR have a PPI::Document object at
186 as the root element, this will return false. Likewise, it will also return
187 false if the root element is a PPI::Document::Fragment, as a fragment of
188 a file does not represent a scope.
189 .SH "SUPPORT"
190 .IX Header "SUPPORT"
191 See the support section in the main module.
192 .SH "AUTHOR"
193 .IX Header "AUTHOR"
194 Adam Kennedy <adamk@cpan.org>
195 .SH "COPYRIGHT"
196 .IX Header "COPYRIGHT"
197 Copyright 2001 \- 2009 Adam Kennedy.
198 .PP
199 This program is free software; you can redistribute
200 it and/or modify it under the same terms as Perl itself.
201 .PP
202 The full text of the license can be found in the
203 \&\s-1LICENSE\s0 file included with this module.