Re: STDIN/perl

Pàgina inicial

Reply to this message
Autor: Patrick Dupre
Data:  
A: jeanluctux
CC: guilde
Assumpte: Re: STDIN/perl
On Mon, 18 May 2009, jeanluctux wrote:

> Patrick Dupre a écrit :
>> Bonjour,
>>
>> En perl, je fais un STDIN, est-ce qu'il y aurait un moyen pour que
>> le comportement d'un caractere de tabulation soit identique a
>> celui que j'ai en shell (cad, linux devine un nom de fichier
>> a partir des premieres lettres saisies) ?
>>
>> Merci.
>
> Pour avoir une ligne de commande :
>     - remonter avec flèche dans les lignes historiques
>     - edition de la ligne
>     - etc...
> C'est vraiment le gnu-readline parce qu'une fois, j'étais parti sur un espèce de
> readline pas gnu, et ça merdouillait joyeusement.

>
> Voici :
>        use Term::ReadLine;
>        $term = new Term::ReadLine 'Simple Perl calc';
>        $prompt = "Enter your arithmetic expression: ";
>        $OUT = $term->OUT || STDOUT;
>        my ($res, $l);
>        $l="";
>        while ( defined ($_ = $term->readline($prompt)) ) {
>            $l= $_;
>            if ( $_ =~ m/^quit/ ) {  exit 0; };
>            $res = eval($l);
>            warn $@ if $@;
>            print $OUT $res, "\n" unless $@;
>            $term->addhistory($l) if /\S/;
>            $l="";
>        }

>
> Par contre, la fonction avec tabulation que tu cherches, c'est l'autocompletion.
> Je ne me suis jamais penché sur la question. Mais auto-complétion est le mot clef.
> Auto-complétion sur ton objet $term en quelque sorte .... c'est comme ça que je
> verrais les choses.
>

Merci.

Donc l'autocompletion fonctionne tres bien avec new Term::ReadLine::Gnu
et meme sans avoir a utiliser l'"history".

-- 
---
==========================================================================
  Patrick DUPRÉ                      |   |
  Department of Chemistry            |   |    Phone: (44)-(0)-1904-434384
  The University of York             |   |    Fax:   (44)-(0)-1904-432516
  Heslington                         |   |
  York YO10 5DD  United Kingdom      |   |    email: pd520@???
==========================================================================