【问题标题】:What's the difference between x and p in perl -d?perl -d中的x和p有什么区别?
【发布时间】:2011-07-13 06:39:35
【问题描述】:
  x|m expr       Evals expr in list context, dumps the result or lists methods.
  p expr         Print expression (uses script's current package).

他们看起来和我一模一样,有什么不同?

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

【问题讨论】:

    标签: perl debugging


    【解决方案1】:

    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 目录中。

    【讨论】:

    • 为什么还需要ReadKey
    • 哇! +1 用于 readline 的东西——我认为调试器中的 readline 是 perl 的编译标志。
    • @Dallaylaen ,perl's compile flag 是什么意思?
    • @new_perl,不知道。你可以在不安装这样的模块的情况下做到这一点:stackoverflow.com/questions/6433241/…
    • @new_perl:在编译 Perl 解释器本身 时使用的选项。你可以看看那些使用perl -V的。通常在编译时配置诸如 readline、语言环境支持等内容。 Perl 再次展示了它的灵活性。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-05-30
      • 2018-03-16
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 2022-12-04
      相关资源
      最近更新 更多