You're right, it doesn't work with Term::Complete. I thought I had tested it. As you said, it doesn't even use Term::ReadLine.
It works with Term::Shell. Here with the pod example slightly modified:
package MyShell;
$ENV{TERM} = '';
use base qw(Term::Shell);
sub run_command1 { print "command 1!\n"; }
sub smry_command1 { "what does command1 do?" }
sub help_command1 { "Help on 'command1', whatever that may be..." }
sub run_command2 { print "command 2!\n"; }
package main;
my $shell = MyShell->new;
$shell->cmdloop;
Or directly with Term::ReadLine:
use Term::ReadLine;
$ENV{TERM} = '';
my $term = Term::ReadLine->new('Tab Completion');
my $prompt = ">>> ";
&readline::rl_basic_commands( qw(set quit type test run exit) );
while ( defined ( $_ = $term->readline($prompt) ) )
{
exit if /exit/ or /quit/;
print $_, "\n";
}
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.