如何在Perl中获得与python的raw_input()相同的效果?

时间:2011-08-10 04:49:33

标签: python perl

Python raw_input()保留所有bash功能,如箭头键和反向搜索......

但是,当我使用Perl的<>来阅读stdin时,不再支持任何功能......

在Perl中以raw_input执行此操作最简单的方法是什么?

1 个答案:

答案 0 :(得分:5)

根据the Python docs

  

如果加载了readline模块,则raw_input()将使用它来提供精细的行编辑和历史记录功能。

如原始帖子的评论中所述,您需要使用适当的模块(例如Term::ReadLineTerm::ReadLine::Gnu)来访问这些功能。这与Python没什么不同 - 如果你想要readline的功能,你必须加载readline模块,无论是隐式还是显式。

但是,是的,您需要使用您选择的readline模块的输入函数而不是<>来表示您希望通过readline处理的任何输入。 (Term::ReadLine::Perl包含一个Term :: ReadLine :: Perl :: Tied模块,可以覆盖<>以运行readline,而不需要额外的代码更改,但T :: RL :: P尚未更新自2009年以来,似乎没有证件,所以除非你有足够的时间弄清楚如何使用它,否则我不会推荐它。)