NAME
Devel::Main - Syntactic sugar for a script's main routine
VERSION
version 0.005
SYNOPSIS
use Devel::Main 'main';
main {
# Your main routine goes here
};
DESCRIPTION
This module provides a clean way of specifying your script's main routine.
METHODS
main()
Declares your script's main routine. Exits when done.
If, instead of executing your script, you load it with use
or require
, main
creates a subroutine named run_main
in the current package. You can then call this subroutine to run your main routine. Arguments passed to this subroutine will override @ARGV
.
Example:
require './my_script.pl';
run_main( 'foo' ); # Calls the main routine with @ARGV = ('foo')
If you alias the 'main' routine to another name, the "run" method will also be aliased. For example, if 'my_script.pl' had said:
use Devel::Main main => { -as => 'primary' };
primary {
# Main code here
};
then the installed subroutine would be called 'run_primary'.
You can also control whether or not the script exits after the main routine via the import parameter 'exit'.
use Devel::Main 'main' => { 'exit' => 0 };
main {
# Main routine
};
print "Still running\n";
Finally, you can change the name of the subroutine to call the main routine via the import parameter 'run_sub_name'.
# In 'my_script.pl'
use Devel::Main 'main' => { 'run_sub_name' => 'run_the_main_routine' };
# In other (test?) script
require './my_script.pl';
run_the_main_routine('bar'); # Calls the main routine with @ARGV = ('bar');
METHODS
CREDITS
This module was inspired by brian d foy's article Five Ways to Improve Your Perl Programming.
AUTHOR
Stephen Nelson <stephenenelson@mac.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Stephen Nelson.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.