有没有一个模块可以搜索多余的代码?

时间:2012-03-14 07:53:50

标签: perl optimization module

是否有可以找到不需要的代码的模块?
作为示例,脚本不需要运行脚本的代码:

#!/usr/bin/env perl
use warnings;
use 5.12.0;
use utf8;
binmode STDOUT, ':utf8';
use DateTime;
use WWW::Mechanize;

sub my_print {
    my ( $string, $tab, $color ) = @_;
    say $string;
}

sub check {
    my $string = shift;
    return if length $string > 10;
    return $string;
}

my_print( 'Hello World' );

2 个答案:

答案 0 :(得分:4)

不是绝对的。众所周知,Perl很难在没有实际执行的情况下进行分析,以至于编译要运行的Perl程序实际上需要包含perl解释器的副本!因此,Perl的代码分析工具非常少。你可以做的是使用一个分析器,但这有点矫枉过正(正如我所提到的,需要实际执行程序。我喜欢Devel::NYTProf。这会吐出一些HTML文件,显示eaqch line或sub多少次已执行,以及在那里花了多少时间,但这只适用于该程序的特定执行。它将允许您看到WWW :: Mechanize已加载但从未被调用,但它将无法分辨如果warningsbinmode对执行产生任何影响,则表示您。

答案 1 :(得分:0)

Devel::Cover提供可能在此处使用的代码覆盖率指标。