TIMTOWTDI in Emacs, too.

educated_foo on 2007-12-16T20:29:11

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.