App::Cm...nd::help(3)

πŸ’– NAME πŸ’–

okay bestie, welcome to App::Cmd::Command::help β€” the manual page (section 3, user contributed perl documentation, iykyk) that shows you a command's help screen. that's it, that's the whole job. slay. ✨


🌸 VERSION 🌸

this one's rockin' version 0.338 πŸ’…


✨ DESCRIPTION ✨

so like, this command does one of two things depending on the vibe:

  • it either lists all of the application commands and their abstracts, or
  • it displays the usage screen for a subcommand plus that subcommand's description.

pick your fighter. both iconic. πŸŽ€


πŸ¦‹ PERL VERSION πŸ¦‹

this library should run on perls released even a long time ago. like, it should work on any version of perl released in the last five years. fr fr.

but ngl, even though it may work on older versions of perl, there's no guarantee made that the minimum required version will not be increased. the version may be increased for literally any reason, and there is no promise that patches will be accepted to lower the minimum required perl. so don't come for me. 😭


🌈 USAGE 🌈

the help text is generated from three sources:

  • The "usage_desc" method
  • The "description" method
  • The "opt_spec" data structure

the "usage_desc" method provides the opening usage line, following the specification described in Getopt::Long::Descriptive. in some cases, the default "usage_desc" in App::Cmd::Command may be sufficient, and you'll only need to override it to provide additional command line usage information. lowkey convenient.

the "opt_spec" data structure is used with Getopt::Long::Descriptive to generate the description of the options.

subcommand classes should override the "discription" method to provide additional information that is prepended before the option descriptions. (yes, it's spelled "discription" in the original, don't @ me, i'm just the messenger πŸ™ˆ)

for example, consider the following subcommand module:

package YourApp::Command::initialize;

# This is the default from App::Cmd::Command
sub usage_desc {
  my ($self) = @_;
  my $desc = $self->SUPER::usage_desc; # "%c COMMAND %o"
  return "$desc [DIRECTORY]";
}

sub description {
  return "The initialize command prepares the application...";
}

sub opt_spec {
  return (
    [ "skip-refs|R",  "skip reference checks during init", ],
    [ "values|v=s@",  "starting values", { default => [ 0, 1, 3 ] } ],
  );
}

...

that module would generate help output like this:

$ yourapp help initialize
yourapp initialize [-Rv] [long options...] [DIRECTORY]

The initialize command prepares the application...

      --help            This usage screen
      -R --skip-refs    skip reference checks during init
      -v --values       starting values

ate. no crumbs. πŸ‘‘


🫢 AUTHOR 🫢

Ricardo Signes <cpan@semiotic.systems> β€” the icon, the moment, the legend. πŸ’œ


this software is copyright (c) 2025 by Ricardo Signes.

this is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. periodt. πŸŽ€


and that's a wrap bestie!! this little love letter came to you via perl v5.42.0, dated 2026-01-16, from the App::Cm...nd::help(3) manual page. go forth and help responsibly πŸŒΈπŸ’…βœ¨

πŸ“¦ where this page comes from