1Getopt::Usaginator(3) User Contributed Perl DocumentationGetopt::Usaginator(3)
2
3
4
6 Getopt::Usaginator - Conjure up a usage function for your applications
7
9 version 0.0012
10
12 use Getopt::Usaginator <<_END_;
13
14 Usage: xyzzy <options>
15
16 --derp Derp derp derp
17 --durp Durp durp durp
18 -h, --help This usage
19
20 _END_
21
22 # The 'usage' subroutine is now installed
23
24 ...
25
26 $options = parse_options( @ARGV ); # Not supplied by Usaginator
27
28 usage if $options{help}; # Print usage and exit with status 0
29
30 if ( ! $options{derp} ) {
31 # Print warning and usage and exit with status -1
32 usage "You should really derp";
33 }
34
35 if ( $options{durp} ) {
36 # Print warning and usage and exit with status 2
37 usage 2 => "--durp is not ready yet";
38 }
39
40 ...
41
42 usage 3 # Print usage and exit with status 3
43
45 Getopt::Usaginator is a tool for creating a handy usage subroutine for
46 commandline applications
47
48 It does not do any option parsing, but is best paired with Getopt::Long
49 or any of the other myriad of option parsers
50
52 use Getopt::Usaginator <usage>
53 Install a "usage" subroutine configured with the <usage> text
54
55 $code = Getopt::Usaginator->usaginator( <usage> )
56 Return a subroutine configured with the <usage> text
57
58 ...
59 More advanced usage is possible, peek under the hood for more
60 information
61
62 perldoc -m Getopt::Usaginator
63
64 An example:
65
66 use Getopt::Usaginator
67 # Called with the error
68 error => sub { ... },
69 # Called when usage printing is needed
70 usage => sub { ... },
71 ...
72 ;
73
75 use Getopt::Usaginator ...
76
77 sub run {
78 my $self = shift;
79 my @arguments = @_;
80
81 usage 0 unless @arguments;
82
83 my ( $help );
84 {
85 local @ARGV = @arguments;
86 GetOptions(
87 'help|h|?' => \$help,
88 );
89 }
90
91 usage 0 if $help;
92
93 ...
94 }
95
97 Robert Krimen <robertkrimen@gmail.com>
98
100 This software is copyright (c) 2010 by Robert Krimen.
101
102 This is free software; you can redistribute it and/or modify it under
103 the same terms as the Perl 5 programming language system itself.
104
105
106
107perl v5.32.0 2020-07-28 Getopt::Usaginator(3)