Use standard line-editing control keys, including filename tab-completion and a command history (curtesy of Term::Readline).
End a line with a backslash character to continue it on another line.
Enter "<<" followed by return, then several lines of text, followed by return and control-d.
In the below, I use the << notation to enter a multi-line block of Perl, terminated by a control-D.
You can then call any subroutines you've defined on the shell prompt line.
~> perl lib/Shell/Shell.pm Term::ShellKit: Starting interactive shell Term::ShellKit> << sub count { my $count = shift; join(', ', ( 0 .. $count ) ) } ^D Term::ShellKit> count(3) count(3): 0, 1, 2, 3 Term::ShellKit> count(5) count(5): 0, 1, 2, 3, 4, 5
To create a new shell command, define a function using the above << syntax.
You can then call those functions with space-separated arguments on the shell prompt line. These commands can use existing shell methods for further interaction with the user.
~> perl lib/Shell/Shell.pm Term::ShellKit: Starting interactive shell Term::ShellKit> << sub do_count { my $count = shift || $Term::ShellKitInput->( 'do_count to: ' ); $shell->shell_out_lines( join(', ', ( 0 .. $count ) ) ); } ^D Term::ShellKit> do_count 3 0, 1, 2, 3 Term::ShellKit> do_count do_count to: 3 0, 1, 2, 3
To install Term::ShellKit, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Term::ShellKit
CPAN shell
perl -MCPAN -e shell install Term::ShellKit
For more information on module installation, please visit the detailed CPAN module installation guide.