perl -d中x和p之间有什么区别?

时间:2011-07-13 06:39:36

标签: perl debugging

  x|m expr       Evals expr in list context, dumps the result or lists methods.
  p expr         Print expression (uses script's current package).

他们似乎与我相同,有什么不同?

另外,在shell环境中是否有像上/下箭头键那样的捷径?

2 个答案:

答案 0 :(得分:6)

请参阅perldoc perldebug

  

p expr与当前包中的“print {$ DB :: OUT} expr”相同。在                      特别是因为这只是Perl自己的“打印”                      函数,这意味着嵌套的数据结构和                      与“x”命令不同,不会转储对象。

  

调试器中的Readline支持/历史记录          出厂时,提供的唯一命令行历史记录是简单的          检查领先的感叹号。但是,如果你安装          来自CPAN的Term :: ReadKey和Term :: ReadLine模块(例如          Term :: ReadLine :: Gnu,Term :: ReadLine :: Perl,...)你将获得满满的          编辑功能很像GNU readline(3)提供的功能。寻找          这些在CPAN上的modules / by-module / Term目录中。

答案 1 :(得分:0)

简单地说:x打印数据结构,p打印标量值。尝试两者:p {x=>1, y=>2}几乎没有意义,但x {x=>1, y=>2}有意义。