CUFP
halley
<p>Here's a little scratch tool I whipped up a few weeks ago. It's nothing esoteric, but it's saved me a bit of time both at work and at home, when considering how I want to arrange a new module, or more importantly, a set of interrelated modules.
<p>As the name implies, this script accepts a simple text input that describes one or more modules, modeled in a very abbreviated Perl-like syntax. The input is line-oriented, but is somewhat forgiving of minor variations.
<code>
# input is line-oriented, similar to the following example:
package Foo::Bar - the package and summary to be created
isa Foo;
no This;
use That qw(that);
require The::Other;
require "Yet/Another.pm";
->new($arg); # returns a blessed hashref
->method($arg); # a normal object method
->property = $value; # a published property with accessor routine
->{property} = $value; # a private property without accessor
</code>
All it does is create the correct directories and makes stumps-- stubby implementations of the aforementioned module or modules. The template is very crude, but saves the labor of writing all the cursory comments, POD, and subs from scratch.
<p>There's plenty of room for improvement and extension. One feature I didn't finish was to name various proposed tests, and have the stump script write the appropriate Test::* scripts alongside each boilerplate module.
<p>For brevity and experimentation, I just published the script at [http://www.halley.cc/ed/linux/scripts/stump] - play with it or offer ideas.
<p>--<br><tt>[ e d @ h a l l e y . c c ]</tt>