如何在Perl中识别和处理控制字符和箭头键?

时间:2010-03-17 05:14:47

标签: perl terminal arrow-keys

我想在Linux终端中实现命令行功能。我也在ftp命令中看到了这个。

  • 如果我按Tab键,我需要列出命令。
  • 如果我按下控制字符,我需要根据我的行为来获取字符。
  • 如果我发出任何命令,它应该执行。

为此,我尝试使用非规范模式的Term::ReadKey。但是在这里我遇到了更多的问题,比如我按任何控制字符或箭头我有三个字符。对于向上箭头,我得到了ASCII 27 91 65。

任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

我认为Term::Readline最适合你。

答案 1 :(得分:2)

我有一个Perl模块可以完全解决我的需求。 那是Term::ShellUI

感谢您的所有投入。

如果您有任何其他解决方案,请随时欢迎。

答案 2 :(得分:2)

不幸的是,通用Term::ReadLine接口不包含可自定义的完成功能。你必须选择一个特定的readline实现。

Term::ReadLine::GnuTerm::ReadLine::PerlTerm::ReadLine::Zoid都可以执行自定义完成功能。 Term :: ReadLine :: Gnu可能是best documented。 Term :: ReadLine :: Perl几乎没有文档,我没有使用Term :: ReadLine :: Zoid的经验。