Add built local::lib
[catagits/Gitalist.git] / local-lib5 / man / man3 / AppConfig::Args.3pm
1 .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sh \" Subsection heading
6 .br
7 .if t .Sp
8 .ne 5
9 .PP
10 \fB\\$1\fR
11 .PP
12 ..
13 .de Sp \" Vertical space (when we can't use .PP)
14 .if t .sp .5v
15 .if n .sp
16 ..
17 .de Vb \" Begin verbatim text
18 .ft CW
19 .nf
20 .ne \\$1
21 ..
22 .de Ve \" End verbatim text
23 .ft R
24 .fi
25 ..
26 .\" Set up some character translations and predefined strings.  \*(-- will
27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28 .\" double quote, and \*(R" will give a right double quote.  | will give a
29 .\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
30 .\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
31 .\" expand to `' in nroff, nothing in troff, for use with C<>.
32 .tr \(*W-|\(bv\*(Tr
33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34 .ie n \{\
35 .    ds -- \(*W-
36 .    ds PI pi
37 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
39 .    ds L" ""
40 .    ds R" ""
41 .    ds C` ""
42 .    ds C' ""
43 'br\}
44 .el\{\
45 .    ds -- \|\(em\|
46 .    ds PI \(*p
47 .    ds L" ``
48 .    ds R" ''
49 'br\}
50 .\"
51 .\" If the F register is turned on, we'll generate index entries on stderr for
52 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53 .\" entries marked with X<> in POD.  Of course, you'll have to process the
54 .\" output yourself in some meaningful fashion.
55 .if \nF \{\
56 .    de IX
57 .    tm Index:\\$1\t\\n%\t"\\$2"
58 ..
59 .    nr % 0
60 .    rr F
61 .\}
62 .\"
63 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
64 .\" way too many mistakes in technical documents.
65 .hy 0
66 .if n .na
67 .\"
68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
70 .    \" fudge factors for nroff and troff
71 .if n \{\
72 .    ds #H 0
73 .    ds #V .8m
74 .    ds #F .3m
75 .    ds #[ \f1
76 .    ds #] \fP
77 .\}
78 .if t \{\
79 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80 .    ds #V .6m
81 .    ds #F 0
82 .    ds #[ \&
83 .    ds #] \&
84 .\}
85 .    \" simple accents for nroff and troff
86 .if n \{\
87 .    ds ' \&
88 .    ds ` \&
89 .    ds ^ \&
90 .    ds , \&
91 .    ds ~ ~
92 .    ds /
93 .\}
94 .if t \{\
95 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101 .\}
102 .    \" troff and (daisy-wheel) nroff accents
103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110 .ds ae a\h'-(\w'a'u*4/10)'e
111 .ds Ae A\h'-(\w'A'u*4/10)'E
112 .    \" corrections for vroff
113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115 .    \" for low resolution devices (crt and lpr)
116 .if \n(.H>23 .if \n(.V>19 \
117 \{\
118 .    ds : e
119 .    ds 8 ss
120 .    ds o a
121 .    ds d- d\h'-1'\(ga
122 .    ds D- D\h'-1'\(hy
123 .    ds th \o'bp'
124 .    ds Th \o'LP'
125 .    ds ae ae
126 .    ds Ae AE
127 .\}
128 .rm #[ #] #H #V #F C
129 .\" ========================================================================
130 .\"
131 .IX Title "AppConfig::Args 3"
132 .TH AppConfig::Args 3 "2007-05-30" "perl v5.8.7" "User Contributed Perl Documentation"
133 .SH "NAME"
134 AppConfig::Args \- Perl5 module for reading command line arguments.
135 .SH "SYNOPSIS"
136 .IX Header "SYNOPSIS"
137 .Vb 1
138 \&    use AppConfig::Args;
139 .Ve
140 .PP
141 .Vb 2
142 \&    my $state   = AppConfig::State\->new(\e%cfg);
143 \&    my $cfgargs = AppConfig::Args\->new($state);
144 .Ve
145 .PP
146 .Vb 1
147 \&    $cfgargs\->parse(\e@args);            # read args
148 .Ve
149 .SH "OVERVIEW"
150 .IX Header "OVERVIEW"
151 AppConfig::Args is a Perl5 module which reads command line arguments and 
152 uses the options therein to update variable values in an AppConfig::State 
153 object.
154 .PP
155 AppConfig::File is distributed as part of the AppConfig bundle.
156 .SH "DESCRIPTION"
157 .IX Header "DESCRIPTION"
158 .Sh "\s-1USING\s0 \s-1THE\s0 AppConfig::Args \s-1MODULE\s0"
159 .IX Subsection "USING THE AppConfig::Args MODULE"
160 To import and use the AppConfig::Args module the following line should appear
161 in your Perl script:
162 .PP
163 .Vb 1
164 \&    use AppConfig::Args;
165 .Ve
166 .PP
167 AppConfig::Args is used automatically if you use the AppConfig module 
168 and create an AppConfig::Args object through the \fIparse()\fR method.
169 .PP
170 AppConfig::File is implemented using object-oriented methods.  A new 
171 AppConfig::Args object is created and initialised using the \fInew()\fR method.
172 This returns a reference to a new AppConfig::File object.  A reference to
173 an AppConfig::State object should be passed in as the first parameter:
174 .PP
175 .Vb 2
176 \&    my $state   = AppConfig::State\->new();
177 \&    my $cfgargs = AppConfig::Args\->new($state);
178 .Ve
179 .PP
180 This will create and return a reference to a new AppConfig::Args object. 
181 .Sh "\s-1PARSING\s0 \s-1COMMAND\s0 \s-1LINE\s0 \s-1ARGUMENTS\s0"
182 .IX Subsection "PARSING COMMAND LINE ARGUMENTS"
183 The \f(CW\*(C`parse()\*(C'\fR method is used to read a list of command line arguments and 
184 update the \s-1STATE\s0 accordingly.  A reference to the list of arguments should
185 be passed in.
186 .PP
187 .Vb 1
188 \&    $cfgargs\->parse(\e@ARGV);
189 .Ve
190 .PP
191 If the method is called without a reference to an argument list then it
192 will examine and manipulate \f(CW@ARGV\fR.
193 .PP
194 If the \s-1PEDANTIC\s0 option is turned off in the AppConfig::State object, any 
195 parsing errors (invalid variables, unvalidated values, etc) will generate
196 warnings, but not cause the method to return.  Having processed all
197 arguments, the method will return 1 if processed without warning or 0 if
198 one or more warnings were raised.  When the \s-1PEDANTIC\s0 option is turned on,
199 the method generates a warning and immediately returns a value of 0 as soon
200 as it encounters any parsing error.
201 .PP
202 The method continues parsing arguments until it detects the first one that
203 does not start with a leading dash, '\-'.  Arguments that constitute values
204 for other options are not examined in this way.
205 .SH "FUTURE DEVELOPMENT"
206 .IX Header "FUTURE DEVELOPMENT"
207 This module was developed to provide backwards compatibility (to some 
208 degree) with the preceeding App::Config module.  The argument parsing 
209 it provides is basic but offers a quick and efficient solution for those
210 times when simple option handling is all that is required.
211 .PP
212 If you require more flexibility in parsing command line arguments, then 
213 you should consider using the AppConfig::Getopt module.  This is loaded 
214 and used automatically by calling the AppConfig \fIgetopt()\fR method.
215 .PP
216 The AppConfig::Getopt module provides considerably extended functionality 
217 over the AppConfig::Args module by delegating out the task of argument 
218 parsing to Johan Vromans' Getopt::Long module.  For advanced command-line 
219 parsing, this module (either Getopt::Long by itself, or in conjunction with 
220 AppConfig::Getopt) is highly recommended.
221 .SH "AUTHOR"
222 .IX Header "AUTHOR"
223 Andy Wardley, <abw@wardley.org>
224 .SH "COPYRIGHT"
225 .IX Header "COPYRIGHT"
226 Copyright (C) 1997\-2007 Andy Wardley.  All Rights Reserved.
227 .PP
228 Copyright (C) 1997,1998 Canon Research Centre Europe Ltd.
229 .PP
230 This module is free software; you can redistribute it and/or modify it 
231 under the same terms as Perl itself.
232 .SH "SEE ALSO"
233 .IX Header "SEE ALSO"
234 AppConfig, AppConfig::State, AppConfig::Getopt, Getopt::Long