Getopt::Tabular is a Perl 5 module for table-driven argument parsing, vaguely inspired by John Ousterhout's Tk_ParseArgv. All you really need to do to use the package is set up a table describing all your command-line options, and call &GetOptions with three arguments: a reference to your option table, a reference to '@ARGV' (or something like it), and an optional third array reference (say, to '@newARGV'). &GetOptions will process all arguments in '@ARGV', and copy any leftover arguments (i.e. those that are not options or arguments to some option) to the '@newARGV' array. (If the '@newARGV' argument is not supplied, 'GetOptions' will replace '@ARGV' with the stripped-down argument list.) If there are any invalid options, 'GetOptions' will print an error message and return 0.
Before I tell you all about why Getopt::Tabular is a wonderful thing, let me explain some of the terminology that will keep popping up here.
argument
any single word appearing on the command-line, i.e. one element of the '@ARGV' array.
option
an argument that starts with a certain sequence of characters; the default is "-". (If you like GNU-style options, you can change this to "--".) In most Getopt::Tabular-based applications, options can come anywhere on the command line, and their order is unimportant (unless one option overrides a previous option). Also, Getopt::Tabular will allow any non-ambiguous abbreviation of options.
option argument
(or value) an argument that immediately follows certain types of options. For instance, if '-foo' is a scalar-valued integer option, and '-foo 3' appears on the command line, then '3' will be the argument to '-foo'.
option type
controls how 'GetOptions' deals with an option and the arguments that follow it. (Actually, for most option types, the type interacts with the 'num_values' field, which determines whether the option is scalar- or vector-valued. This will be fully explained in due course.)
Package Version | Update ID | Released | Package Hub Version | Platforms | Subpackages |
---|---|---|---|---|---|
0.3-bp156.3.1 info | GA Release | 2023-07-22 | 15 SP6 |
|
|
0.3-bp155.2.9 info | GA Release | 2023-05-17 | 15 SP5 |
|
|
0.3-bp154.1.19 info | GA Release | 2022-05-09 | 15 SP4 |
|
|
0.3-bp153.1.14 info | GA Release | 2021-03-06 | 15 SP3 |
|
|
0.3-bp152.3.13 info | GA Release | 2020-04-16 | 15 SP2 |
|
|
0.3-bp151.3.1 info | GA Release | 2019-07-17 | 15 SP1 |
|
|
0.3-bp151.2.12 info | GA Release | 2019-05-18 | 15 SP1 |
|
|
0.3-bp150.2.4 info | GA Release | 2018-07-30 | 15 |
|
|