在我所有的Perl安装中,在使用不同Perl版本的非常不同的机器上(直到v5.36,这是撰写本文时的最新版本),在使用perl -d SomeModule.pm调用Perl调试器时,我无法像在shell中那样使用键盘。Readline看起来是坏的,就像在没有导出TERM=xterm的情况下向主机发送命令一样,首先,up打印^[[A而不是访问历史,home打印^[[H而不是移动光标,end打印^[[F,等等。如何解决这个问题?
perl -d SomeModule.pm
TERM=xterm
up
^[[A
home
^[[H
end
^[[F
8ulbf1ek1#
请访问https://perldoc.perl.org/perldebug#Readline-Support-/-History-in-the-Debugger
在出厂时,提供的唯一命令行历史记录是一个过于简单的命令行历史记录,它检查前面的感叹号。但是,如果您从CPAN安装Term::ReadKey和Term::ReadLine模块(例如Term::ReadLine::Gnu,Term::ReadLine::Perl,...),您将拥有完全的编辑功能,就像GNU readline(3)提供的功能一样。请在CPAN上的 modules/by-module/Term 目录中查找这些功能。但是,这些功能不支持正常的vi命令行编辑。如果安装了PadWalker模块,还可以使用基本的命令行完成功能,包括当前作用域中的词法变量。如果没有Readline支持,使用箭头键和/或退格键时,您可能会看到符号“^[[A”、^[[C”、^[[B”、^[[D”、“^H”......“。
PadWalker
1条答案
按热度按时间8ulbf1ek1#
请访问https://perldoc.perl.org/perldebug#Readline-Support-/-History-in-the-Debugger
调试器中的Readline支持/历史记录
在出厂时,提供的唯一命令行历史记录是一个过于简单的命令行历史记录,它检查前面的感叹号。但是,如果您从CPAN安装Term::ReadKey和Term::ReadLine模块(例如Term::ReadLine::Gnu,Term::ReadLine::Perl,...),您将拥有完全的编辑功能,就像GNU readline(3)提供的功能一样。请在CPAN上的 modules/by-module/Term 目录中查找这些功能。但是,这些功能不支持正常的vi命令行编辑。
如果安装了
PadWalker
模块,还可以使用基本的命令行完成功能,包括当前作用域中的词法变量。如果没有Readline支持,使用箭头键和/或退格键时,您可能会看到符号“^[[A”、^[[C”、^[[B”、^[[D”、“^H”......“。