Devel::PerlySense has been getting quite a bit of (apparently
well-deserved) attention lately. As the author of Sepia,
a long-existing but apparently little-used Emacs Perl development
module, I thought now would be a good time to post a diary here. For
those of you who tried an earlier version, Sepia is considerably more
stable and better-documented in versions 0.9x, but needs more users to acquire polish.
Sepia aims to make Emacs the kind of interactive development
environment for Perl that it already is for Emacs Lisp. This involves a
number of components:
- Interactive evaluation: Supports both a REPL and a scratch buffer.
The REPL uses the Perl debugger hooks to allow breakpoints and
recovery from
die
, and Devel::LexAlias to inspect and
change lexicals.
- Source navigation: Finds definitions, callers, and callees. This is
supported by querying the running Perl process rather than through
PPI.
- Documentation: Displays minibuffer documentation (eldoc) for
builtins and some user functions, and supports POD browsing.
- Completion: Completes variable, function, and module names based
on the running Perl process.
Not having used Devel::PerlySense, I won't try to make a detailed
comparison, but my impression is that Devel::PerlySense is geared
toward off-line development (uses PPI, has a class browser, etc.),
while Sepia is geared toward on-line development (supports interaction, value
inspection, debugging). So give both a try, and see which style suits you best.