man pshdevel () - Developing for Perl Shell
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 CW$Psh::debugging variable.
Possible values for -d/CW$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.
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:
- delay loading modules until they are really needed
BUILT-IN FUNCTIONS
On startup, CWpsh scans the Psh::Builtins:: namespace and will add the names of all found dynamic loadable builtins to CW%Psh::built_ins.
During evaluation of an input line, CWpsh will first check the CW%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.