The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Sepia - Simple Emacs-Perl Interface

SYNOPSIS

From inside Emacs:

   M-x load-library RET sepia RET
   M-x sepia-init RET

At the prompt in the *perl-interaction* buffer:

   main @> ,help

DESCRIPTION

Sepia is a set of features to make Emacs a better tool for Perl development. This package contains the Perl side of the implementation, including all user-serviceable parts (for the cross-referencing facility see Sepia::Xref).

Though not intended to be used independent of the Emacs interface, the Sepia module's functionality can be used through a rough procedural interface.

@compls = completions($string [, $type])

Find a list of completions for $string with glob type $type. Completion operates on word subparts separated by [:_], so e.g. "S:m_w" completes to "Sepia::my_walksymtable".

@locs = location(@names)

Return a list of [file, line, name] triples, one for each function name in @names.

@matches = apropos($name [, $is_regex])

Search for function $name, either in all packages or, if $name is qualified, only in one package. If $is_regex is true, the non-package part of $name is a regular expression.

@names = mod_subs($pack)

Find subs in package $pack.

@decls = mod_decls($pack)

Generate a list of declarations for all subroutines in package $pack.

$info = module_info($module, $type)

Emacs-called function to get module information.

$file = mod_file($mod)

Find the likely file owner for module $mod.

@mods = package_list

Gather a list of all distributions on the system. XXX UNUSED

@mods = module_list

Gather a list of all packages (.pm files, really) installed on the system, grouped by distribution. XXX UNUSED

@mods = doc_list

Gather a list of all documented packages (.?pm files, really) installed on the system, grouped by distribution. XXX UNUSED

lexicals($subname)

Return a list of $subname's lexical variables. Note that this includes all nested scopes -- I don't know if or how Perl distinguishes inner blocks.

$lisp = tolisp($perl)

Convert a Perl scalar to some ELisp equivalent.

printer(\@res [, $iseval])

Print @res appropriately on the current filehandle. If $iseval is true, use terse format. Otherwise, use human-readable format, which can use either Data::Dumper, YAML, or Data::Dump.

repl(\*FH)

Execute a command interpreter on FH. The prompt has a few bells and whistles, including:

  * Obviously-incomplete lines are treated as multiline input (press
    'return' twice or 'C-c' to discard).

  * C<die> is overridden to enter a recursive interpreter at the point
    C<die> is called.  From within this interpreter, you can examine a
    backtrace by calling "bt", return from C<die> with "r EXPR", or
    go ahead and die by pressing Control-c.

Behavior is controlled in part through the following package-globals:

$PACKAGE -- evaluation package
$PRINTER -- result printer (default: print_dumper)
$PS1 -- the default prompt
$STOPDIE -- true to enter the inspector on die()
$STOPWARN -- true to enter the inspector on warn()
$STRICT -- whether 'use strict' is applied to input
$WANTARRAY -- evaluation context
%REPL -- maps shortcut names to handlers
%REPL_DOC -- maps shortcut names to documentation

$status = html_module_list($file [, $prefix])

Generate an HTML list of installed modules, looking inside of packages. If $prefix is missing, uses "about://perldoc/".

$status = html_package_list($file [, $prefix])

Generate an HTML list of installed top-level modules, without looking inside of packages. If $prefix is missing, uses "about://perldoc/".

TODO

See the README file included with the distribution.

AUTHOR

Sean O'Rourke, <seano@cpan.org>

Bug reports welcome, patches even more welcome.

COPYRIGHT

Copyright (C) 2005-2007 Sean O'Rourke. All rights reserved, some wrongs reversed. This module is distributed under the same terms as Perl itself.