Блог ← Как найти зависимости CPAN модуля в необходимом порядке установки

Доступные переводы: English

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

#!/usr/bin/env perl

use strict;
use warnings;

use CPAN::FindDependencies;

my $done = {};
my $list = {};
foreach my $module ( @ARGV ) {
    my @dependencies = CPAN::FindDependencies::finddeps( $module );
    foreach my $dep ( @dependencies ) {
        # we don't want to install perl core modules
        next if $dep->distribution() =~ m/perl-/;

        # skip if already processed
        next if exists $done->{ $dep->name() };

        push @{ $list->{ $dep->depth } }, $dep->name();

        $done->{ $dep->name() } = 1;
    }
}

my @keys = reverse sort keys %$list;

foreach my $key ( @keys ) {
    foreach my $module ( @{ $list->{ $key } } ) {
        print $module, "\n";
    }
}

24 Июн, 2008
0.04 »

Оставить комментарий

OpenID Войти с помощью OpenID
[u] [i] [url] [img] [code] [list]...
Не будет опубликован
 
2008 GPL
все тэги »

Подписка

rss Записи
rss Комментарии

Недавние записи

архив »

Недавние комментарии

Страница сгенерирована за 0.103714с
Крутится на Catalyst