How can I identify and handle control characters and arrow keys in Perl?

断了今生、忘了曾经 提交于 2020-01-02 07:38:12

问题


I want to implement the command line features like in a linux terminal. I saw this in ftp command also.

  • If I press tab I need to list the commands.
  • If I press control characters I need to get that characters based on that I will do some action.
  • And if I give any commands it should execute.

For this I tried with Term::ReadKey that is in non-canonical mode. But here I am facing more problems like if I press any control character or arrow I got three characters. For the up arrow I got ASCII 27 91 65.

Can anyone help me out of this problem?


回答1:


Unfortunately, the generic Term::ReadLine interface doesn't include customizable completion features. You have to pick a particular readline implementation for that.

Term::ReadLine::Gnu, Term::ReadLine::Perl, and Term::ReadLine::Zoid are all capable of performing custom completion. Term::ReadLine::Gnu is probably the best documented. Term::ReadLine::Perl is virtually undocumented, and I have no experience with Term::ReadLine::Zoid.




回答2:


I think you'd be best served by Term::Readline.




回答3:


I got one Perl module to solve my requirement fully. that is Term::ShellUI.

Thanks for all your inputs.

And If you have any other solution is always welcome.



来源:https://stackoverflow.com/questions/2460032/how-can-i-identify-and-handle-control-characters-and-arrow-keys-in-perl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!