2016-09-13 4 views
-1

구성 파일을 읽으려면 스크립트에서 Config :: IniFiles 모듈을 사용하고 있습니다. 스크립트를 실행할 때 아래 오류가 나타납니다.Perl 모듈 구성 :: IniFiles 오류

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

뭐가 잘못 됐는지 꽤 많이 알려줍니다. List :: 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)를 보여줍니다. 제쳐두고, 당신은 펄 버전을 업그레이드해야합니다. 5.8.8은 10 세 이상입니다! – ThisSuitIsBlackNot

답변

3

메시지는 매우 자명합니다.

목록 :: 필요한 백분율 버전 1.33 -이 모듈의 1.21

하나는 목록 :: 백분율 버전 1.33 필요한 경우에만 버전이지만, 당신은 버전 1.21의 설치로드하고 있습니다. List :: Util의 최신 버전을 설치해야합니다.

모듈을 설치할 때 OS 배포 패키지 관리자 또는 cpan (또는 cpanm)을 사용해야합니다. 모듈을 설치할 때 의존성 설치도 처리해야합니다.

+0

업데이트 된 List :: Util을 다시 설치하고 cpan Config :: IniFiles로 Config :: IniFiles 모듈을 설치했습니다. – Madhan

+0

List :: Util이 설치되지 않았기 때문에 문제가 발생하지 않았습니다. List :: Util 1.33, 그리고 당신이 여전히 문제가 있다고 말하기로했다고 가정 해 봅시다. 그것이 사실이라면, 많은 가능성이 있습니다. 모듈 설치 방법을 지정하십시오. (정확한 명령을 입력하십시오.)'cpan'을 사용했다면'echo 'conf'의 출력을 제공하십시오. cpan'. 또한,'set | grep^PERL'. (이것 모두는 질문에 대한 편집으로 추가됩니다.) – ikegami

+0

List :: Util 모듈은 최근 버전 인 1.45로 업데이트되었습니다. cpan에서 Config :: IniFiles를 다운로드하고 cpan [4] 명령을 통해 설치하십시오.> Config :: IniFiles를 설치하십시오. – Madhan

0

언급 한 것처럼 Config::IniFiles 스크립트에는 설치시 제공된 것보다 더 최신 List::Util 버전이 필요합니다. 아마도 다른 저장소에서 perl 모듈을 설치했을 것입니다.

예를 들어, perldoc -l List::Util을 실행하여 List::Util의 위치를 ​​찾을 수 있습니다. 그런 다음 이전 버전이 설치된 OS 패키지를 찾아 패키지를 업데이트하는 것이 좋습니다.

기타 옵션은 CPAN의 List::Util (예 : cpanp install List::Util) 또는 구형 OS 패키지를 설치하는 Config::IniFiles의 다운 그레이드에만 설치합니다.