Não consigo imprimir o texto padrão na entrada Readline

1

Estou escrevendo uma interface para meu banco de dados e gostaria de poder editar entradas. Eu pensei em usar o Readline, mas não consigo fazer funcionar. Eu diria que meu código deve funcionar, com base em Termo :: ReadLine :: Gnu e esta resposta em SE .

perl -w -MTerm::ReadLine -E'
$term = new Term::ReadLine "ProgramName";
$prompt = "prompt> ";
sub su {insert_text("----default----");};
$attributes = $term->Attribs;
$attributes{startup_hook} = \&su;
while (defined ($_ = $term->readline($prompt)))
{ eval; }
'

Estou recebendo o prompt de limpeza:

prompt> 

enquanto espero isso:

prompt> ----default----

Ainda não sou muito fluente com o Perl, e isso está ficando complexo. Existe um bug do meu lado? Alguma coisa está faltando? Ou é um buraco na implementação do módulo?

    
por Tomasz 12.03.2018 / 07:54

1 resposta

1

Descobri que posso usar esta sintaxe:

$term->readline($prompt, $default)

Isso é muito mais curto e mais simples que o código da pergunta.

Encontrei aqui: Term :: ReadLine :: Perl5 , embora ainda não seja certeza de como esses três estão relacionados:

  • Termo :: ReadLine :: Perl5
  • Termo :: ReadLine :: Gnu
  • Termo :: ReadLine

(A questão permanece aberta.)

    
por 12.03.2018 / 08:19