NAME Getopt::Long::Util - Utilities for Getopt::Long VERSION This document describes version 0.79 of Getopt::Long::Util (from Perl distribution Getopt-Long-Util), released on 2014-12-21. FUNCTIONS parse_getopt_long_opt_spec($str) => hash Parse Getopt::Long option specification. Will produce a hash with some keys: "opts" (array of option names, in the order specified in the opt spec), "type" (string, type name), "desttype" (either '', or '@' or '%'), "is_neg" (true for "--opt!"), "is_inc" (true for "--opt+"), "min_vals" (int, usually 0 or 1), "max_vals" (int, usually 0 or 1 except for option that requires multiple values), Will return undef if it can't parse $str. Examples: $res = parse_getopt_long_opt_spec('help|h|?'); # {opts=>['help', 'h', '?'], type=>undef} $res = parse_getopt_long_opt_spec('--foo=s'); # {opts=>['foo'], type=>'s', min_vals=>1, max_vals=>1} humanize_getopt_long_opt_spec($str) => str Convert Getopt::Long option specification like "help|h|?" or <--foo=s> or "debug!" into, respectively, "--help, -h, -?" or "--foo=s" or "--(no)debug". Will die if can't parse $str. The output is suitable for including in help/usage text. detect_getopt_long_script(%args) => envres detect_getopt_long_script(%args) -> [status, msg, result, meta] Detect whether a file is a Getopt::Long-based CLI script. The criteria are: * the file must exist and readable; * (optional, if "include_noexec" is false) file must have its executable mode bit set; * content must start with a shebang "#!"; * either: must be perl script (shebang line contains 'perl') and must contain something like "use Getopt::Long"; Arguments ('*' denotes required arguments): * filename => *str* Path to file to be checked. Either "filename" or "string" must be specified. * include_noexec => *bool* (default: 1) Include scripts that do not have +x mode bit set. * string => *buf* Path to file to be checked. Either "file" or "string" must be specified. Return value: Returns an enveloped result (an array). First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information. (any) SEE ALSO Getopt::Long Getopt::Long::Spec, which can also parse Getopt::Long spec into hash as well as transform back the hash to Getopt::Long spec. OO interface. I should've found this module first before writing my own "parse_getopt_long_opt_spec()". But at least currently "parse_getopt_long_opt_spec()" is at least about 30-100+% faster than Getopt::Long::Spec::Parser, has a much simpler implementation (a single regex match), and can handle valid Getopt::Long specs that Getopt::Long::Spec::Parser fails to parse, e.g. "foo|f=s@". HOMEPAGE Please visit the project's homepage at . SOURCE Source repository is at . BUGS Please report any bugs or feature requests on the bugtracker website When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. AUTHOR perlancar COPYRIGHT AND LICENSE This software is copyright (c) 2014 by perlancar@cpan.org. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.