Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

app::cmd::simple(3pm) [debian man page]

App::Cmd::Simple(3pm)					User Contributed Perl Documentation				     App::Cmd::Simple(3pm)

NAME
App::Cmd::Simple - a helper for building one-command App::Cmd applications VERSION
version 0.318 SYNOPSIS
in simplecmd: use YourApp::Cmd; Your::Cmd->run; in YourApp/Cmd.pm: package YourApp::Cmd; use base qw(App::Cmd::Simple); sub opt_spec { return ( [ "blortex|X", "use the blortex algorithm" ], [ "recheck|r", "recheck all results" ], ); } sub validate_args { my ($self, $opt, $args) = @_; # no args allowed but options! $self->usage_error("No args allowed") if @$args; } sub execute { my ($self, $opt, $args) = @_; my $result = $opt->{blortex} ? blortex() : blort(); recheck($result) if $opt->{recheck}; print $result; } and, finally, at the command line: knight!rjbs$ simplecmd --recheck All blorts successful. SUBCLASSING
When writing a subclass of App::Cmd:Simple, there are only a few methods that you might want to implement. They behave just like the same- named methods in App::Cmd. opt_spec This method should be overridden to provide option specifications. (This is list of arguments passed to "describe_options" from Getopt::Long::Descriptive, after the first.) If not overridden, it returns an empty list. validate_args $cmd->validate_args(\%opt, @args); This method is passed a hashref of command line options (as processed by Getopt::Long::Descriptive) and an arrayref of leftover arguments. It may throw an exception (preferably by calling "usage_error") if they are invalid, or it may do nothing to allow processing to continue. execute Your::App::Cmd::Simple->execute(\%opt, @args); This method does whatever it is the command should do! It is passed a hash reference of the parsed command-line options and an array reference of left over arguments. WARNINGS
This should be considered experimental! Although it is probably not going to change much, don't build your business model around it yet, okay? App::Cmd::Simple is not rich in black magic, but it does do some somewhat gnarly things to make an App::Cmd::Simple look as much like an App::Cmd::Command as possible. This means that you can't deviate too much from the sort of thing shown in the synopsis as you might like. If you're doing something other than writing a fairly simple command, and you want to screw around with the App::Cmd-iness of your program, Simple might not be the best choice. One specific warning... if you are writing a program with the App::Cmd::Simple class embedded in it, you must call import on the class. That's how things work. You can just do this: YourApp::Cmd->import->run; AUTHOR
Ricardo Signes <rjbs@cpan.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2012 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. perl v5.14.2 2012-05-05 App::Cmd::Simple(3pm)

Check Out this Related Man Page

ExtUtils::Typemaps::Cmd(3pm)				 Perl Programmers Reference Guide			      ExtUtils::Typemaps::Cmd(3pm)

NAME
ExtUtils::Typemaps::Cmd - Quick commands for handling typemaps SYNOPSIS
From XS: INCLUDE_COMMAND: $^X -MExtUtils::Typemaps::Cmd -e "print embeddable_typemap(q{Excommunicated})" Loads "ExtUtils::Typemaps::Excommunicated", instantiates an object, and dumps it as an embeddable typemap for use directly in your XS file. DESCRIPTION
This is a helper module for ExtUtils::Typemaps for quick one-liners, specifically for inclusion of shared typemaps that live on CPAN into an XS file (see SYNOPSIS). For this reason, the following functions are exported by default: EXPORTED FUNCTIONS
embeddable_typemap Given a list of identifiers, "embeddable_typemap" tries to load typemaps from a file of the given name(s), or from a module that is an "ExtUtils::Typemaps" subclass. Returns a string representation of the merged typemaps that can be included verbatim into XS. Example: print embeddable_typemap( "Excommunicated", "ExtUtils::Typemaps::Basic", "./typemap" ); This will try to load a module "ExtUtils::Typemaps::Excommunicated" and use it as an "ExtUtils::Typemaps" subclass. If that fails, it'll try loading "Excommunicated" as a module, if that fails, it'll try to read a file called Excommunicated. It'll work similarly for the second argument, but the third will be loaded as a file first. After loading all typemap files or modules, it will merge them in the specified order and dump the result as an embeddable typemap. SEE ALSO
ExtUtils::Typemaps perlxs AUTHOR
Steffen Mueller "<smueller@cpan.org"> COPYRIGHT &; LICENSE Copyright 2012 Steffen Mueller This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.16.2 2012-10-11 ExtUtils::Typemaps::Cmd(3pm)
Man Page