The new code is available here (a beta-ish release: 0.41): http://obsidianrook.com/perlnow/code/ Some documentation is here: http://obsidianrook.com/perlnow/index_docs.html o Brief intro to perlnow o automates a few routine tasks -- the idea is that when you've got an idea, it makes it easier for you to jump into working on it. There are commands for module and script creation, as well as commands to check, debug and run (or run tests). As you work with perlnow it tries to do an intelligent job of guessing run-strings for these tasks. It makes heavy use of a simple (though unfortunately non-standard) templating package: template.el o This version of perlnow (the 0.4 release) has many bugs fixed (and no doubt many bugs introduced, though hopefully small ones [1]), and some notable features added. o perlnow-check now has a variant, perlnow-check harder, bound to: C-u C-c \ c perlnow-check just does a "perl -cw", the "check harder" version other also runs "podchecker" and "perlcritic". I think this could be my "killer-app". Nothing else here is likely to improve your life as a perl coder as much as this. I'm really happy with that UI idea of using the standard emacs prefix command (C-u) to mean "run this harder", or "more thoroughly". I've been working on using that through out perlnow. o perlnow-module-starter. The original perlnow had a front end to "h2xs": now there's a similar one for "module-starter". This defaults to "Module::Build" and presumes you're creating object-oriented modules, but both defaults can be changed. If you're the kind of person who generates a new cpan-style project every hour or so, that will no doubt be tremendously useful. o support for multiple numbered test files. Older versions of perlnow tended to presume a test file naming style like "t/Modular-Stuff.t" (That was the h2xs default, which is where I picked it up). In reality, standard practice is closer to: t/00-basic_modstuff.t 01-heavy_modstuff.t 02-even_stuffier.t (The way I had been using perlnow.el, I just used "Modular-Stuff.t" as an initial name, and manually re-named it when I wanted to move on to another *.t) Now if you have something like a cpan-style project with numbered tests in one t directory, the usual "edit test" command will look for the highest numbered test file. And doing an "edit test" with the "harder" prefix, "C-u", will open up a menu showing all of the test files. o Removing small annoyances can have larger effects on the way you work. For me, the barrier to starting a script is lower, so that's what I do when I want to try out a code snippet. Because of this habit I've got a directory full of experimental code demos, essentially a private cookbook I can refer back to. o Other small features: perlnow-ack (Note: there's already an "ack.el" and perlysense has ack features, too.) perlnow-revise-test-plan perlnow-revise-export-list perlnow-insert-sub
o Multiple-test file handling: Open ~/End/Cave/EmacsPerl/Wall/Emacs-Run/lib/Emacs/Run.pm (a Module::Build-based, CPAN module) C-c / t Note, opens up 08-*.t, the highest numbered file. C-c / b Back to the module. C-u C-c / t Doing it "harder" opens a menu of existing test files. Desired feature: C-c / r Should guess you want to run a single test file. C-u C-c / r Should guess you want to run all tests C-u C-u C-c /r Should guess you want to run all tests recursively. o Exporter-based demo: C-c / m C-c / i do this several times to create some simple subs C-c / t Creates a test. Note FindBin/use lib, Write a test, checking the return of the simple subs. C-c / r run the test - fails: duh, subs aren't exported C-c / b back to *.pm M-x perlnow-revise-export-list automatically adds all subs to %EXPORT_TAGS, :all C-c / b back to *.t add more tests, until test count is wrong. M-x perlnow-revise-test-plan automatically fixes the test count