[Marseille-pm] A propos de Class::DBI

arnaud at underlands.org arnaud at underlands.org
Fri Aug 29 10:01:52 CDT 2003


On Mon, Aug 25, 2003 at 11:53:19AM +0200, Robert silve wrote:
> en fait le plus emmerdant est le cas suivant :
> je recupere le contenu d'un table
> 
> my @acc = Table->retrieve_all; # c'est un petite table
> et je passe le tout a mon template 
> $tmpl->param(table =>\@acc);
> et hop dans mon template j'ai acces a tout ce qu'il me faut.
> Le defaut c'est que , si je n'ai qu'un element, je ne recupere que l'identifiant

Que veux tu dire par identifiant ? ARRAY(...) ?

> si entre la recuperation et le passage au template j'ajoute
> warn map { $_->macolonne } @acc;

map "force" le contexte liste (et retransforme ton tableau en tableau)
que fait le warn dans l'histoire ?

> alors tout ce met a marcher.
> Si ma table contient plus d'un element c'est ok.
> Je ne comprend pas trop bien ce qui se passe.

> Arnaud as tu deja eu ce probleme et vois tu d'ou il peut venir ?

J'ai jamais eu ce problème...

piste possible :

_ un wantarray manque dans l'implémentation de retreive_all (optimisation?)
_ "" interpréte différemment un scalaire et un tableau, quand tu appelles
$tmpl->param(table => \@acc);
Je *suppose* que le la partie droite de la flèche '=>' est interpollée dans un
contexte de double quote...
Si l'opérateur a été redéfini et que \@acc est consacré dans un type
Class::DBI ca pourrait mettre la grouille dans un code qui marchait bien
auparavant...

que vaut \@acc ?

Encore une fois si t'avais un  petit jeu de test (minimal) qui me permettrait
de me remettre dans les MEMES conditions, je pourrais te donner une reponse
plus précise...

Arnaud.



More information about the Marseille-pm mailing list