Есть ли модуль, который ищет лишний код? - PullRequest
5 голосов
/ 14 марта 2012

Есть ли модуль, который может найти код, который не нужен?
Например, скрипт с кодом, который не нужен для запуска скрипта:

#!/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 ]

4 голосов
/ 14 марта 2012

Не категорично. Общеизвестно, что Perl трудно анализировать, не выполняя фактически, до такой степени, что для компиляции программы Perl, которая будет запускаться позже, на самом деле требуется включить копию интерпретатора perl! В результате для Perl очень мало инструментов анализа кода. То, что вы можете сделать, это использовать профилировщик, но это немного излишне (и, как я уже говорил, требует фактического выполнения программы. Мне нравится Devel::NYTProf. Это покажет некоторые HTML-файлы, показывающие, сколько раз выполнялась каждая строка или подпрограмма eaqch). , а также сколько времени там было потрачено, но это работает только для этого конкретного выполнения программы. Это позволит вам увидеть, что WWW :: Mechanize загружен, но никогда не вызывается, но он не сможет сказать вам, если warnings или binmode оказали влияние на выполнение.

0 голосов
/ 14 марта 2012

Devel::Cover предоставляет метрики покрытия кода, которые могут быть здесь полезными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...