package Igner::App; use MooseX::App; parameter db => ( #all igner apps need a "db" required => 1, ... ); package Igner::App::URL; extends 'Igner::App'; use MooseX::App::Command; # because this script has additional parameters and options paramter proxy => ( # only Igner::App::URL needs a proxy required => 1, ... ); sub run { ... } #### #!/usr/bin/perl use Igner::App::URL; Igner::App::URL->new_with_command->run;