OVH Cloud OVH Cloud

Il ne trouve pas "load" dans un module

5 réponses
Avatar
Rakotomandimby Mihamina
Bonjour,

J'ai ce script qui est censé convertir les vcards en ldif.
En fait mon ancien Address book ne sait pas exporter en ldif, et mon
nouveau address book ne sait pas importer en vcard. Un comble.

http://www.jhorner.com/vCard2tbirdLDIF
(sur ma machine j'ai renommé ce script en vcardtoldif.pl)

C'est un script Perl et j'ai installé les modules qu'il requiert.
Cependant, en le lançant, j'ai une erreur:

Can't locate object method "load" via package "Text::vCard" at
./vcardtoldif.pl line 22, <DATA> line 134.

Je n'arrive pas à résoudre ce problème. J'avoue ne pas être une flèche
en Perl et les limites de mes connaissances de ce langages ont été
atteintes. Une recherche sur Internet ne m'a pas apporté la solution,
elle m'a juste confirmé que certains ont rencontré ce problème.

Je vous donne les premières lignes du script, au moins jusqu'à la ligne
incriminée. Merci d'avance.


#########################################################################
#!/usr/bin/perl

use Text::vCard;
use Net::LDAP::LDIF;
use Data::Dumper qw(Dumper);

$ldif = Net::LDAP::LDIF->new( \*STDOUT, 'w' );

foreach(@ARGV){
$cards = Text::vCard->load($_);
foreach $vcard (@{$cards}){

$entry = Net::LDAP::Entry->new;

# Attributes we don't know how to programmatically
# get to.
foreach ('ORG','TITLE','NOTE'){
$vcard->{$_}{'value'} =~ s/\\n?/ /g;
}

$entry->add (

# FN -> cn
cn => $vcard->fn(),

# Default Tbird objectclasses: top, person, organizationalPerson
# inetOrgPerson, MozillaAbPersonObsolete
'objectclass' => 'top',
'objectclass' => 'person',

######################### [...]

--
Miroir de logiciels libres http://www.etud-orleans.fr

5 réponses

Avatar
Thomas vO
bonjour,

À (at) Wed, 06 Jul 2005 19:31:42 +0200, Rakotomandimby Mihamina
nous disait (told us):
Bonjour,

[...]
Can't locate object method "load" via package "Text::vCard" at
./vcardtoldif.pl line 22, <DATA> line 134.


avez-vous essayé :
use Text::vCard qw/load/;
?

--
Thomas vO - <http://www.enstimac.fr/~vanouden/>

Avatar
damien guerin
Dans vcard.pm, y a t il bien la méthode load?
Avatar
Paul Gaborit
À (at) Thu, 07 Jul 2005 09:51:07 +0200,
Thomas vO écrivait (wrote):
bonjour,

À (at) Wed, 06 Jul 2005 19:31:42 +0200, Rakotomandimby Mihamina
nous disait (told us):
Bonjour,

[...]
Can't locate object method "load" via package "Text::vCard" at
./vcardtoldif.pl line 22, <DATA> line 134.


avez-vous essayé :
use Text::vCard qw/load/;


Ça ne sert à rien d'importer (ou plutôt d'essayer d'importer) cette méthode
dans le package courant puisque, dans son message d'erreur, perl montre bien
qu'il cherche déjà cette fameuse méthode 'load' dans le package Text::vCard.

Le problème est que le package Text::vCard ne contient absolument pas de
méthode 'load'. Peut-être existait-elle dans une version antérieure mais en
générale l'auteur qui supprime une méthode propose un workaround ou, au
minimum, prévient dans la doc (sauf si ces changements arrivent dans une
version non stable ce qui n'est pas le cas de la version 1.96).

Je pencherai donc plus dans une erreur au niveau du script appelant... Il
faut trouver pouquoi il cherche à utiliser cette méthode inexistante.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>


Avatar
damien guerin
C'est bien ce qui me semblait à moi aussi ;)
Avatar
Rakotomandimby Mihamina
Paul Gaborit wrote:
Je pencherai donc plus dans une erreur au niveau du script appelant... Il
faut trouver pouquoi il cherche à utiliser cette méthode inexistante.


Bon... mon projet tombe donc à l'eau. Ces temps-ci je dois déjà
apprendre une quantité de langages de programmation conséquente, je ne
peux pas me permettre de rajouter Perl, malheureusement. Je vais
contourner le problème autrement.

Merci pour tout.

--
Miroir de logiciels libres http://www.etud-orleans.fr