Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

educated_foo (3106)

  (email not shown publicly)

Journal of educated_foo (3106)

Sunday December 16, 2007
03:29 PM

TIMTOWTDI in Emacs, too.

[ #35115 ]
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.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Since there are only developer releases available, the usual cpan maneuvers don't work. The working incantation is:

    cpan SEANO/Sepia-0.95_03.tar.gz
    Then the elisp files can be found in the .cpan directory, but I found it easier to just wget them into my elisp directory from the list in the MANIFEST [] file.
    • Ugh, sorry about that. I just uploaded a version 0.96 that's identical to 0.95_03, but should avoid the cpan hassle. Unfortunately I can't think of a good platform-independent way to install the elisp files and HTML documentation, so people still need to do that by hand.
      • In PerlySense, I install the .el files next to the .pm files, then load the elisp in .emacs []by asking a Perl script where the .el files are.
        • Thanks. That may be the best option, but it's sort of unsatisfying (more so when I install the info pages). Another option might be to prompt (with defaults) for the various paths in Makefile.PL.

          It's amazing that software as old as Emacs doesn't have some automatic way to install packages.