perlsh (1) - Linux Manuals

perlsh: one-line perl evaluator with line editing function and


perlsh - one-line perl evaluator with line editing function and          variable name completion function




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;
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[\!]$ "'.

The secondary prompt string. The default value is `"> "'.
The name of the file to which the command history is saved. The default value is "~/.perlsh_history".
If not "undef", this is the maximum number of commands to remember in the history. The default value is 256.
If true, restrict unsafe constructs. See "use strict" in perl man page. The default value is 0;


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.

        # -*- mode: perl -*-
        # decimal to hexa
        sub h { map { sprintf("0x%x", $_ ) } @_;}

        sub tk {
            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.


Hiroo Hayashi <hiroo.hayashi [at]>