Readline 입력에서 기본 텍스트를 인쇄할 수 없습니다

Readline 입력에서 기본 텍스트를 인쇄할 수 없습니다

내 데이터베이스에 대한 인터페이스를 작성 중이고 항목을 편집할 수 있기를 원합니다. 나는 Readline을 사용할 것이라고 생각했지만 작동시킬 수 없습니다. 내 코드는 다음을 기반으로 작동해야 한다고 말하고 싶습니다.용어::ReadLine::Gnu그리고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; }
'

나는 깨끗한 프롬프트를 받았습니다:

prompt> 

나는 이것을 예상했지만 :

prompt> ----default----

나는 아직 Perl에 능숙하지 못하며 점점 더 복잡해지고 있습니다. 내쪽에 버그가 있는 걸까요? 뭔가 빠진 것이 있나요? 아니면 모듈 구현에 허점이 있습니까?

답변1

다음 구문을 사용할 수 있다는 것을 알았습니다.

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

이는 질문의 코드보다 짧고 간단합니다.

여기에서 찾았습니다.용어::ReadLine::Perl5, 아직 이 세 가지가 어떻게 관련되어 있는지는 확실하지 않습니다.

  • 용어::ReadLine::Perl5
  • 용어::ReadLine::Gnu
  • 용어::ReadLine

(그러나 이 질문은 여전히 ​​열려 있습니다.)

관련 정보