perlsh man page

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

Synopsis

  perlsh

Description

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.

Variables

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

$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::HISTSIZE

If not "undef", this is the maximum number of commands to remember in the history.  The default value is 256.

$PerlSh::STRICT

If true, restrict unsafe constructs.  See "use strict" in perl man page.  The default value is 0;

Files

~/.perlshrc

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 {
            $t->tkRunning(1);
            use Tk;
            $mw = MainWindow->new();
        }

        # for debugging Term::ReadLine::Gnu
        sub afterinit {
            *t = \$PerlSh::term;
            *a = \$PerlSh::attribs;
        }
~/.perlsh_history
~/.inputrc

A initialization file for the GNU Readline Library.  Refer its manual for details.

See Also

Term::ReadLine::Gnu <http://search.cpan.org/dist/Term-ReadLine-Gnu/>

GNU Readline Library <http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html>

Author

Hiroo Hayashi <hiroo.hayashi@computer.org>

Info

2017-08-04 perl v5.26.0 User Contributed Perl Documentation