PSHDEVEL(1) User Contributed Perl Documentation PSHDEVEL(1)NAME
psh - Developing for Perl Shell
SYNOPSIS
Developing for the Perl Shell.
DESCRIPTION
DEBUGGING
The -d option puts psh into "debugging" mode, which prints diagnostic
output. Note that you can also enter/leave this debugging mode in a
running psh via the $Psh::debugging variable.
Possible values for -d/$Psh::debugging are either 0 to disable it, 1 to
enable all debug messages or a string of characters where each
character denotes a certain class of debug messages.
"s" - enables printing of information about the chosen strategy for
each command
"o" - enables printing of "other" debug info - info which has not been
further categorized
"f" - enables printing of the rc files read by psh on startup while it
is executed and allows easy tracing of problems in these files
"i" - enables printing of initialization debug info
"e" - enables printing of otherwise suppressed error messages
"c" - enables printing of debug messages for completion
SPEED
Even though psh aims to be an interactive shell instead of a scripting
environment, speed is important. The main concern here is that startup
speed of psh, which is primarily determined by two factors:
perl startup and module loading
command processing speed
The startup time on a normal, not to busy, computer should be smaller
than one second. To make this possible, keep some simple rules in mind:
prefer "require" to "use" whenever possible
delay loading modules until they are really needed
let the "applies" method of evaluation strategies be as fast as
possible
BUILT-IN FUNCTIONS
On startup, "psh" scans the Psh::Builtins:: namespace and will add the
names of all found dynamic loadable builtins to %Psh::built_ins.
During evaluation of an input line, "psh" will first check the
%Psh::built_ins variable. If this fails it will try to locate an
appropriate built-in function in Psh::Builtins.pm.
A dynamical loadable builtin has to be in a file called Builtinname.pm
within the Psh::Builtins:: namespace and has at least one subroutine,
called 'bi_builtinname'. Additionally, it may provide a
cmpl_builtinname subroutine for a custom completion. Furthermore, a
builtin should contain some pod documentation, starting with "=item * "
and ending with "=cut". The builtin will be called with 2 arguments,
the first one if the rest of the line while the second one is an array
to all the words psh discovered.
For a list of the predefined psh builtins, use the "help" command from
within psh.
DEFINING EVALUATION STRATEGIES
Currently empty due to overhaul of strategies
COPYRIGHT
Copyright (C) 1999-2003 Gregor N. Purdy. All rights reserved. This
script is free software. It may be copied or modified according to the
same terms as Perl itself.
perl v5.20.2 2007-07-06 PSHDEVEL(1)