App-Rad
view release on metacpan or search on metacpan
lib/App/Rad.pm view on Meta::CPAN
though you'll probably want to set them both:
use App::Rad qw(include exclude);
=head2 include I<[command_name]> I<-perl_params> I<'your subroutine code'>
Includes the given subroutine into your program on-the-fly, just as you would writing it directly into your program.
Let's say you have your simple I<'myapp.pl'> program that uses App::Rad sitting on your system quietly. One day, perhaps during your sysadmin's tasks, you create a really amazing one-liner to solve a really hairy problem, and want to keep it for post...
For instance, to change a CSV file in place, adding a column on position #2 containing the line number, you might do something like this (this is merely illustrative, it's not actually the best way to do it):
$ perl -i -paF, -le 'splice @F,1,0,$.; $_=join ",",@F' somesheet.csv
And you just found out that you might use this other times. What do you do? App::Rad to the rescue!
In the one-liner above, just switch I<'perl'> to I<'myapp.pl include SUBNAME'> and remove the trailing parameters (I<somesheet.csv>):
$ myapp.pl include addcsvcol -i -paF, -le 'splice @F,1,0,$.; $_=join ",",@F'
( run in 2.353 seconds using v1.01-cache-2.11-cpan-d7a12ab2c7f )