2016-09-13 31 views
-1

私は構成ファイルを読むためにスクリプトでConfig :: IniFilesモジュールを使用しています。スクリプトを実行すると、以下のエラーが表示されます。PerlモジュールConfig :: 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

あなたのリスト:: 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

モジュールの1つは、Utilのバージョン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モジュールをインストールしました。

List::Utilの場所は、ex、perldoc -l List::Utilを実行して見つけることができます。次に、インストールされている古いバージョンのOSパッケージを探してパッケージを更新することをお勧めします。

その他のオプションは、新品のList::Util(例:cpanp install List::Util)またはダウングレードConfig::IniFiles(旧OSパッケージをインストール)からインストールするだけです。

関連する問題