perlsh - one-line perl evaluator with line editing function and variable name completion function
perlsh
This program reads input a line, and evaluates it by perl interpreter, and prints the result. If the result is a list value then each value of the list is printed line by line. This program can be used as a very strong calculator which has whole perl functions.
This is a sample program Term::ReadLine::Gnu module. When you input a line, the line editing function of GNU Readline Library is available. Perl symbol name completion function is also available.
Before invoking, this program reads ~/.perlshrc and evaluates the content of the file.
When this program is terminated, the content of the history buffer is saved in a file ~/.perlsh_history, and it is read at next invoking.
You can customize the behavior of perlsh by setting following variables in ~/.perlshrc;
$PerlSh::PS1
The primary prompt string. The following backslash-escaped special characters can be used.
\h: host name \u: user name \w: package name \!: history number
The default value is `\w[\!]$ '.
\w[\!]$
$PerlSh::PS2
The secondary prompt string. The default value is `> '.
>
$PerlSh::HISTFILE
The name of the file to which the command history is saved. The default value is ~/.perlsh_history.
~/.perlsh_history
$PerlSh::HISTSIZE
If not undef, this is the maximum number of commands to remember in the history. The default value is 256.
undef
$PerlSh::STRICT
If true, restrict unsafe constructs. See use strict in perl man page. The default value is 0;
use strict
This file is eval-ed at initialization. If a subroutine afterinit is defined in this file, it will be eval-ed after initialization. Here is a sample.
afterinit
# -*- mode: perl -*- # decimal to hexa sub h { map { sprintf("0x%x", $_ ) } @_;} sub tk { $t->tkRunning(1); use Tk; $mw = MainWindow->new(); } # for debugging Term::ReadLine::Gnu sub afterinit { *t = \$PerlSh::term; *a = \$PerlSh::attribs; }
A initialization file for the GNU Readline Library. Refer its manual for details.
Term::ReadLine::Gnu
GNU Readline Library
Hiroo Hayashi <hiroo.hayashi@computer.org>
To install Term::ReadLine::Gnu, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Term::ReadLine::Gnu
CPAN shell
perl -MCPAN -e shell install Term::ReadLine::Gnu
For more information on module installation, please visit the detailed CPAN module installation guide.