Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Installation de Tie::CSV_File

3 réponses
Avatar
azrazer
Bonjour,
Après avoir essayé pendant quelques heures d'installer Tie::CSV_File, je
me heurte à des erreurs qui me dépassent...
Le problème que me sort le make test est le suivant :
Can't locate object method "parse" via package "quote_char" (perhaps you
forgot to load "quote_char"?) at
[PATH]/CPAN/build/Tie-CSV_File-0.21-Wek71n/blib/lib/Tie/CSV_File.pm line 198
([PATH]/CPAN/build/ est l'endroit ou j'ai dit a cpan.pm de construire
les modules)
Pareil avec la méthode "combine" l.137

Ces deux méthodes sont définies dans Text::CSV_XS qui a été installé
correctement par cpan.pm (et qui est bien sur dans les modules chargés
par Tie::CSV_File).

Si j'aide perl à trouver ces méthodes (en faisant parse ==>
Text::CSV_File::parse), ca marche mieux, mais il me dit :
Can't use string ("quote_char") as a HASH ref while "strict refs" in use
at /mnt/data/Perl/usr/local/lib/perl/5.10.0/Text/CSV_XS.pm line 436

j'ai essayé d'appeler les fonctions en leur passant comme argument des
pointeurs (\$string à la place de $string) (ce qui résoud ce problème
parfois, mais c'est assez hasardeux...)

bref, ne pensant pas qu'enlever les use strict de partout soit une bonne
idée -l'erreur étant surement ailleurs-... j'ai du mal a comprendre.

Auriez-vous quelques idées ?
En vous remerciant !!

azer.

3 réponses

Avatar
Paul Gaborit
À (at) Fri, 18 Sep 2009 14:28:54 +0200,
azrazer écrivait (wrote):
Bonjour,
Après avoir essayé pendant quelques heures d'installer Tie::CSV_File,
je me heurte à des erreurs qui me dépassent...
Le problème que me sort le make test est le suivant :
Can't locate object method "parse" via package "quote_char" (perhaps
you forgot to load "quote_char"?) at
[PATH]/CPAN/build/Tie-CSV_File-0.21-Wek71n/blib/lib/Tie/CSV_File.pm
line 198



Je constate exactement les mêmes symptômes ici (avec une version 5.8.5
de perl).

Auriez-vous quelques idées ?



Ce module est en version 0.21 et date de mai 2003 ! Il n'est donc pas
stable et certainement pas à jour par rapport aux évolutions des
modules dont il dépend.

Idées : ne pas utiliser ce module et faire appel directement à
Text::CSV_XS ou, si vous souhaitez quelque chose de plus automagique,
utiliser DBIx::Class par dessus DBD::CSV (même si cet empilement
ressemble à un marteau pour écraser une mouche).


--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
Avatar
espie
In article ,
Paul Gaborit <Paul.Gaborit+ wrote:
Idées : ne pas utiliser ce module et faire appel directement à
Text::CSV_XS ou, si vous souhaitez quelque chose de plus automagique,
utiliser DBIx::Class par dessus DBD::CSV (même si cet empilement
ressemble à un marteau pour écraser une mouche).



J'ai joue avec DBD::CSV recemment, pas convaincu. Typiquement SQL::Parse,
sur lequel il s'appuie est tres limite: pas foutu de gerer les quotes
sur les noms de colonnes. Du coup, si ton fichier csv a la mauvaise idee
d'avoir des noms de colonnes qui contiennent autre chose que du texte,
tu as perdu...

(jette un oeil a SQL::Parse::IDENTIFIER, tu verras a quel point c'est
la merde....)

Mais bon, a part ca, tant qu'on fait pas du sql trop avance, ca marche
plutot bien...
Avatar
azrazer
Paul Gaborit a écrit :
À (at) Fri, 18 Sep 2009 14:28:54 +0200,
azrazer écrivait (wrote):
[snip]



Je constate exactement les mêmes symptômes ici (avec une version 5.8.5
de perl).

Auriez-vous quelques idées ?



Ce module est en version 0.21 et date de mai 2003 ! Il n'est donc pas
stable et certainement pas à jour par rapport aux évolutions des
modules dont il dépend.


Moui, c'est dommage il économisait quelques lignes de code...

Idées : ne pas utiliser ce module et faire appel directement à
Text::CSV_XS ou, si vous souhaitez quelque chose de plus automagique,
utiliser DBIx::Class par dessus DBD::CSV (même si cet empilement
ressemble à un marteau pour écraser une mouche).


Merci, j'ai finalement abandonné l'idée de "fixer" le module et ai
utilisé Text::CSV_XS, ce que j'aurais du faire depuis le début
manifestement (3h à essayer de réparer le module, 1h à faire le
programme complet sans le module)

Merci pour vos conseils éclairés !
azrazer.