In article <[EMAIL PROTECTED]>, [EMAIL PROTECTED] writes: >[EMAIL PROTECTED] (Peter Scott) writes: > >> In article <[EMAIL PROTECTED]>, >> [EMAIL PROTECTED] writes: >>>Before starting to write my script designed to make filename changing >>>easier I'd like to ask how to create an editable command line inside a >>>perl script? >> [snip] >> >> Term::ReadLine > >Ah yes. Any idea how to make perl insert a string (actually a file >name from an earlier process into that command line? > >Just inserting a sting to test like this doesn't work. The sting >isn't editable.
Right, it's not inserted, it's just in the prompt. >From the perldoc example for Term::Readline > >use Term::ReadLine; >my $term = new Term::ReadLine 'Simple Perl calc'; >my $prompt = "Enter your arithmetic expression: <SOMETHING HERE>"; >my $OUT = $term->OUT || \*STDOUT; >while ( defined ($_ = $term->readline($prompt)) ) { > my $res = eval($_); > warn $@ if $@; > print $OUT $res, "\n" unless $@; > $term->addhistory($_) if /\S/; >} > >How can I get an editable file name in there programatically? You need a more capable ReadLine package. Install Term::ReadLine::Gnu and do: BEGIN { $ENV{PERL_RL} = 'Gnu' } use Term::ReadLine; my $term = new Term::ReadLine 'Simple Perl calc'; my $prompt = "Enter your arithmetic expression: "; my $OUT = $term->OUT || \*STDOUT; while ( defined ($_ = $term->readline($prompt, '<SOMETHING HERE>')) ) { my $res = eval($_); warn $@ if $@; print $OUT $res, "\n" unless $@; $term->addhistory($_) if /\S/; } -- Peter Scott http://www.perldebugged.com/ *** NEW *** http://www.perlmedic.com/ -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>