| Glib::OptionGroup(3pm) | User Contributed Perl Documentation | Glib::OptionGroup(3pm) |
Glib::OptionGroup - group of options for command line option parsing
my ($verbose, $source, $filenames) = ('', undef, []);
my $entries = [
{ long_name => 'verbose',
short_name => 'v',
arg_type => 'none',
arg_value => \$verbose,
description => 'be verbose' },
{ long_name => 'source',
short_name => 's',
arg_type => 'string',
arg_value => \$source,
description => 'set the source',
arg_description => 'source' },
[ 'filenames', 'f', 'filename-array', \$filenames ],
];
my $context = Glib::OptionContext->new ('- urgsify your life');
$context->add_main_entries ($entries, 'C');
$context->parse ();
# $verbose, $source, and $filenames are now updated according to the
# command line options given
Glib::Boxed +----Glib::OptionGroup
Creates a new option group from the given key-value pairs. The valid keys are name, description, help_description, and entries. The first three specify strings while the last one, entries, specifies an array reference of option entries. Example:
my $group = Glib::OptionGroup->new (
name => 'urgs',
description => 'Urgs Urgs Urgs',
help_description => 'Help with Urgs',
entries => \@entries);
An option entry is a hash reference like this:
{ long_name => 'verbose',
short_name => 'v',
flags => [qw/reverse hidden in-main/],
arg_type => 'none',
arg_value => \$verbose,
description => 'verbose desc.',
arg_description => 'verbose arg desc.' }
Of those keys only long_name, arg_type, and arg_value are required. So this is a valid option entry too:
{ long_name => 'package-names',
arg_type => 'string-array',
arg_value => \$package_names }
For convenience, option entries can also be specified as array references containing long_name, short_name, arg_type, and arg_value:
[ 'filenames', 'f', 'filename-array', \$filenames ]
If you don't want an option to have a short name, specify undef for it:
[ 'filenames', undef, 'filename-array', \$filenames ]
This method works directly on @ARGV.
May croak with a Glib::Error in $@ on failure.
Glib, Glib::Boxed
Copyright (C) 2003-2011 by the gtk2-perl team.
This software is licensed under the LGPL. See Glib for a full notice.
| 2024-03-31 | perl v5.38.2 |