2

在 Perl 项目中,通常如何修复脚本中的错误?请任何人都可以给出一些想法。提前致谢。

4

2 回答 2

4

我的第一个想法是perldoc perldebug

我认为这是更好的起点。

我的第二个是:总是放

use strict;
use warnings;

在你的脚本的顶部,你可以把

use diagnostics;

也用于产生更详细的警告诊断


在打开 Pandora 盒子之前,先利用 Perl 模块Data::Dumper

显示所有(嵌套)数据结构和对象很有用,请参阅(我使用perlconsole,尝试一些技巧很好):

$ perlconsole
Perl Console 0.4
Perl> my $ref = { foo => 'bar', arr => [ 1, 2, 3, [ qw/a z e r t y/ ] ] }
HASH(0x1fc25a8)

Perl> use Data::Dumper;
Perl> print Dumper  $ref;
$VAR1 = {
          'foo' => 'bar',
          'arr' => [
                     1,
                     2,
                     3,
                     [
                       'a',
                       'z',
                       'e',
                       'r',
                       't',
                       'y'
                     ]
                   ]
        };
1

Perl> 

你会看到 Perl 可以在调试器中运行脚本

perl -d -e 42 script.pl

帮忙说:

$ perl --help | grep -- '-d'
  -d[:debugger]     run program under debugger

您也可以使用以下命令“追踪”它:

perl -d:Trace script.pl

还有一个调试器,它带有Devel::ptkdb模块,例如:

perl -d:ptkdb script.pl

ptkdb


尝试

perlcritic

还有一个用于批评 Perl 源代码的命令行界面。


也可以分析您的代码,请参阅

http://metacpan.org/pod/Devel::NYTProf

http://blog.timbunce.org/2008/07/15/nytprof-v2-a-major-advance-in-perl-profilers/

调试

于 2012-11-20T13:32:33.607 回答
3
perl -c <your program>

...将在 Perl 脚本中为您提供任何语法错误,包括您可以在 Internet 上查找的特定错误消息。

另外,给自己一个机会:-

use strict;

在每个 Perl 文件的顶部。没有它,Perl 会自动激活你输入错误的变量。有了它,任何未声明的变量都算作语法错误。

于 2012-11-20T13:32:35.363 回答