2016-09-13 2 views
-1

Я использую модуль Config :: IniFiles в своем скрипте для чтения файла конфигурации. При выполнении скрипта я получаю следующую ошибку.Perl module Config :: IniFiles error

List::Util version 1.33 required--this is only version 1.21 at /usr/lib/perl5/site_perl/5.8.8/Config/IniFiles.pm line 14. 
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Config/IniFiles.pm line 14. 
Compilation failed in require at ./SFTP_Common_Connect.pl line 3. 
BEGIN failed--compilation aborted at ./SFTP_Common_Connect.pl line 3. 

Ниже приведены строки сценария.

#!/usr/bin/perl 
use strict; 
use Config::IniFiles; 
use Data::Dumper; 

my $conf="/tmp/config.cfg"; 
my %con_details; 

(-f $conf) ? tie %con_details, 'Config::IniFiles', (-file => $conf) : die $!; 

print Dumper %con_details; 
+1

Это в значительной степени говорит о том, что не так --- ваш список :: Util слишком стар. Обновите это. – Robert

+0

Я обновил. Хотя, получив ту же ошибку – Madhan

+2

@Madhan Затем либо сбой установки, либо модуль был установлен где-то, что perl не может его найти. Вы уверены, что List :: Util установлен успешно? Тесты CPAN показывают [ряд отказов на Perl 5.8.8] (http://matrix.cpantesters.org/?dist=Scalar-List-Utils%201.45;perl=5.8.8;reports=1). В стороне, вы должны * действительно * обновить свою версию perl; 5.8.8 больше 10 лет! – ThisSuitIsBlackNot

ответ

3

Сообщение очень само собой разумеется.

Список :: Util версия 1,33 требуется - это только для версии 1,21

Один из модулей требует список :: Util версии 1.33, но вы загружаете инсталляционные версии 1.21. Вам нужно установить более новую версию List :: Util.

Для установки модулей вам необходимо использовать диспетчер пакетов своих ОС или cpan (или cpanm), так как они обрабатывают также установки зависимостей.

+0

Я обновил список List :: Util, а также установил модули Config :: IniFiles с помощью cpan Config :: IniFiles – Madhan

+0

Проблема не в том, что List :: Util не был установлен, поэтому предположим, что вы имели в виду, что вы установили List :: Util 1.33, и предположим, что вы хотели сказать, что у вас все еще есть проблема. Если это так, то есть множество возможностей. Укажите, как вы установили модуль. (Предоставьте точную команду, пожалуйста.) Если вы использовали 'cpan', укажите вывод' echo 'o conf' | cpan'. Кроме того, укажите вывод 'set | grep^PERL'. (Все это вы добавите в качестве редактирования на свой вопрос.) – ikegami

+0

Теперь модуль List :: Util обновлен в своей последней версии, которая равна 1.45. Я загрузил Config :: IniFiles из cpan и установил с помощью команды cpan [4]> install Config :: IniFiles. – Madhan

0

Как уже упоминалось, сценарий Config::IniFiles требует более новой версии List::Util, чем предусмотрено в вашей установке. Возможно, вы установили модули perl из разных хранилищ.

Вы можете найти адрес List::Util, выполнив, например, perldoc -l List::Util, после чего я рекомендую вам найти, какой пакет ОС установил старую версию и обновить пакет.

Другие варианты - установить только свежие List::Util от CPAN, ex, cpanp install List::Util, или понизить Config::IniFiles, установка старый пакет ОС.

Смежные вопросы