问题
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