2009-11-30 3 views
0

Je cours un script qui nécessite la librairie Curl.pm pour fonctionner. Je YUM pour installer la bibliothèque et maintenant je suis en train d'avoir mon script utiliser, mais je continue à obtenir l'erreurAjout d'une bibliothèque au tableau @INC en perl

Can't locate WWW/Curl.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.6/x86_...

Lorsque je tape ce qui suit dans la ligne de commande:

rpm - ql pelotonner

Je reçois:

/usr/bin/curl 
/usr/lib64/libcurl.so.3 
/usr/lib64/libcurl.so.3.0.0 
/usr/share/doc/curl-7.13.1 
/usr/share/doc/curl-7.13.1/BUGS 
/usr/share/doc/curl-7.13.1/CHANGES 
/usr/share/doc/curl-7.13.1/COPYING 
/usr/share/doc/curl-7.13.1/FAQ 
... 
/usr/share/man/man1/curl.1.gz 
/usr/bin/curl 
/usr/lib/libcurl.so.3 
/usr/lib/libcurl.so.3.0.0 
/usr/share/doc/curl-7.13.1 
/usr/share/doc/curl-7.13.1/BUGS 
/usr/share/doc/curl-7.13.1/CHANGES 
... etc. 

Lequel des chemins ci-dessus doit être inclus dans mon répertoire @INC? J'avais pensé que le code ci-dessous permettrait de résoudre le problème lorsqu'il est placé en haut de mon script, mais je reçois toujours la même erreur erreur @INC.

BEGIN { 
    unshift(@INC, '/usr/lib/libcurl.so.3'); 
    use WWW::Curl; 
} 

Lorsque je tape

cpan> i /WWW::curl/ 

-je obtenir la liste ci-dessous ci-dessous. Je suis toujours perplexe. Je veux utiliser WWW :: curl et je ne sais pas lequel des chemins ci-dessous (ou ci-dessus) pour ajouter à @INC! On dirait qu'il est déjà installé. Qu'est-ce que je fais d'ici?

cpan> i /WWW::curl/ 
CPAN: Storable loaded ok 
Going to read /root/.cpan/Metadata 
Database was generated on Mon, 30 Nov 2009 02:55:47 GMT 
Module   WWW::Curl  (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz) 
Module   WWW::Curl::Easy (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz) 
Module   WWW::Curl::Form (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz) 
Module   WWW::Curl::Multi (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz) 
Module   WWW::Curl::Share (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz) 
Module   WWW::Curl::Simple (A/AN/ANDREMAR/WWW-Curl-Simple-0.05.tar.gz) 
Module   WWW::Curl::Simple::Request (A/AN/ANDREMAR/WWW-Curl-Simple-0.05.tar.gz) 
7 items found 
+2

... Ou si son conseil ne fonctionnait pas, postez vos progrès en tant que modification de votre question, vous pouvez obtenir de plus amples conseils . Juste laisser la question pendante est impoli. – Ether

+2

'WWW :: Curl' et' WWW :: curl' sont différents. Ainsi, 'i/WWW :: Curl /' et 'install WWW :: Curl' –

+0

Je n'ai pas encore trouvé de solution à mon problème et je ne veux pas répondre à une question tant que mon problème n'est pas résolu. J'ai essayé presque toutes les suggestions qui m'ont été données dans les deux messages ...quand quelqu'un viendra dans le futur pour lire ce billet à la recherche d'une solution, je veux être sûr qu'il a lu ce qui a réellement résolu mon problème. BTW, il faut du temps pour essayer ces suggestions .... J'essaie de résoudre le problème aussi rapidement que possible et quand je le fais, je promets de revenir et de «répondre» à la question. –

Répondre

8

Vous avez installé curl qui n'est pas la même chose que WWW::Curl.

Vous devez installer le module Perl WWW::Curl. Vous devez d'abord rechercher les référentiels de packages spécifiques à votre système d'exploitation pour le module. Si vous ne pouvez pas le trouver là, utilisez cpanm pour l'installer:

$ cpanm WWW::Curl

Voir aussi perldoc perlmodinstall.

8

Vous avez installé la bibliothèque de boucles. Pour installer le WWW :: Module Curl faire:

yum install perl-WWW-Curl 
2

Je vais ignorer ce chaos que je vois et simplement répondre à la question:

  1. Vous n'ajoutez pas les bibliothèques à @INC, vous ajouter des répertoires. Les répertoires que vous ajoutez contiennent des modules Perl, c'est-à-dire des fichiers *.pm.
  2. Pour ce faire, vous utilisez simplement use lib. Si le répertoire que vous souhaitez ajouter est /foo/bar:

 

use lib qw| /foo/bar |; 
+1

@Manni Il est difficile d'ignorer le chaos, principalement parce que si l'OP installait 'WWW :: Curl' via le gestionnaire de paquet spécifique au système d'exploitation ou' cpan', l'ajout de chemins à '@ INC' ne serait pas nécessaire. +1 –

+0

Sinan: Il m'a fallu deux heures pour me mettre dans le bon état d'esprit pour digérer le chaos. Merci pour l'upvote. – innaM

Questions connexes