Perl   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了调试器中如何使用perl 5.10功能?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法评估Perl调试器中的“现代perl”代码.调试文件中的代码但不是提示时,它可以正常工作.

最小例子:

# activaTing 5-10 features with -E (it works)
$ perl -E 'say "x"'
x
# calling the debugger with -E
# it works for infile code but for prompt line code...
$ perl -dEbug    Loading DB routInes from perl5db.pl version 1.33
    DB say "x"
    String found where operator expected at (eval 16)[/local-perl/lib/5.12.1/perl5db.pl:638] line 2,near "say "x""
    at (eval 16)[/local-perl/lib/5.12.1/perl5db.pl:638] line 2
        eval '($@,$!,$^E,$,$/,$\\,$^W) = @saved;package main; $^D = $^D | $DB::db_stop;say "x";

[注意:与“使用功能”相同:5.10’“]

我错过了什么吗?

解决方法

这是一个有趣的问题,一个我从来没有想过的,所以就这么认为.

我发现参这个问题@L_874_0@,但大约一岁.但是,perl源的相关部分并没有改变,可以看出here.基本上,如果您在perl源代码中查看toke.c,您将看到以下内容:

if (PL_perldb) {
    /* Generate a String of Perl code to load the debugger.
     * If PERL5DB is set,it will return the contents of that,* otherwise a compile-time require of perl5db.pl.  */

    const char * const pdb = PerlEnv_getenv("PERL5DB");
            ...
}
...
if (PL_minus_E)
    sv_catpvs(PL_linestr,"use feature ':5." StriNGIFY(PERL_VERSION) "';");

基本上,在处理-E标志之前加载调试器,因此当调试器加载时,功能尚未启用.这一点的主要目的是您现在无法使用-d命令使用-E.如果要使用说明,开关或任何其他功能从调试提示符,您必须这样做:

DB<1> use feature 'say'; say "x"
  x

我见过最近的一个解决方案是:

我发现在PerlMonks.

大佬总结

以上是大佬教程为你收集整理的调试器中如何使用perl 5.10功能?全部内容,希望文章能够帮你解决调试器中如何使用perl 5.10功能?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。