Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1517 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Erreur non-lvalue subroutine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] Erreur non-lvalue subroutine

n°1285588
bennneuh
Posté le 17-01-2006 à 15:19:24  profilanswer
 

Bonjour,
 
Je vous demande de nouveau de l'aide suite a un problème de script...
J'espere que vous pourrez me répondre sans trop profiter de votre temps.
 
Donc j'ai un script qui plante... jusqu'a là logique...
 
il m'indique:
 

Citation :

Can't modify non-lvalue subroutine call at /var/www/www.XxXxX.com/cgi-bin/panier.cgi line 103, <DATA> line 22008., referer: http://www.XxXxX.com/cgi-bin/displaybooks.cgi


 
et donc je c pas trop se qu'il entend par ca... dsl je suis pas vraiment spécialisé en dev...
 
et donc si je regarde la ligne qui pose problème j'ai ca:
 

Citation :

$session->booksUID() = "";


 
mais j'avoue comme dans ma précédente demande d'aide... être un peu a l'ouest.
 
donc si vous avez une idée ou bien une astuce je vous remercie d'avance.
 
++++
 
 
Benoît

mood
Publicité
Posté le 17-01-2006 à 15:19:24  profilanswer
 

n°1285613
anapajari
s/travail/glanding on hfr/gs;
Posté le 17-01-2006 à 15:47:30  profilanswer
 

sans voir le reste du code ça va pas être facile.
Mais j'imagine que booksUID c'est une sub définie quelque part, et tu essayes d'affecter une valeur au retour de cette sub... s'pas possible!

n°1285636
bennneuh
Posté le 17-01-2006 à 16:09:38  profilanswer
 

oui je suis désolé il m'est difficile de donner le code... :/
 
mais sinon le booksUID je le retrouve dans une sub comme ca:
 
sub mandatoryParameters {
        my $self = shift;
        $self->booksUID([]);
        etc...}
 
serais-tu si je peux mettre la sub en lvalue pour que ca passe?
 
merci
 
Benoît


Message édité par bennneuh le 17-01-2006 à 16:11:49
n°1285702
anapajari
s/travail/glanding on hfr/gs;
Posté le 17-01-2006 à 16:43:19  profilanswer
 

BooksUID est une sub qui a vu de nez doit prendre une ref sur un tableau en paramètres.
tu ne peux donc pas faire:

Code :
  1. $session->booksUID() = "";


Tu souhaitais faire quoi en faisant ça? Vider les booksUID? A ce moment là fais comme dans le bout que tu montres:

Code :
  1. $self->booksUID([]);


 
Mais encore une fois c'est un peu à l'aveuglette...

n°1285752
bennneuh
Posté le 17-01-2006 à 17:14:59  profilanswer
 

nan enfaite la ligne  

Citation :

$session->booksUID() = "";


Est l'initialisation pour ensuite rentrer des nouvelles infos concernant un bouquin dans une variable de session... pour qu'a la fin la personne est un panier avec ses bouquins et les achetes...
 
bon finalement il semblerait que la session suite a une migration ne fonctionne pu dutout... du coup il va falloir que je redeveloppe toute la parti session... '=/  c pas trop compliqué apache::session ? et avec mysql?
 
merci déjà pour toutes les infos.
 
+++
 
Benoit

n°1285820
pospos
Posté le 17-01-2006 à 17:58:56  profilanswer
 

une lvalue sub c'est justement une sub à laquelle on peu assigne une valeur (par exemple substr())
 
on la definie comme suit:
 
sub blabla :lvalue {
  ...
}
 
et la derniere variable de la sub peut etre assignée
 
il faudrait voir la methode booksUID pour voir si elle est définie comme lvalue ou pas
 
pour ce faire il faudrait voir à quelle classe appartient l'objet $session, et regarder dans le code de cette classe.
 
Si ca marchait avant c'est peut etre parceque les deux installs n'avaient pas la meme version de cette classe, et que l'une des deux definie une API avec lvalue et l'autre non!
 

n°1285822
pospos
Posté le 17-01-2006 à 18:00:13  profilanswer
 

pour connaitre al classe de $session il suffit de toruver le new, comme pour ton precedent probleme

n°1285853
anapajari
s/travail/glanding on hfr/gs;
Posté le 17-01-2006 à 18:31:09  profilanswer
 

pospos la classe :)

n°1286176
bennneuh
Posté le 17-01-2006 à 23:19:12  profilanswer
 

et bien merci bcp pour toutes vos réponses! je v voir ca demain encore! :)
 
et comme d'hab merci bcp sur ce coup la vous m'avez pas mal aidez! J'aimerais trop que ca fonctionne et ne pas avoir a me retapper toute la parti session! :p
 
+++
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Erreur non-lvalue subroutine

 

Sujets relatifs
[resolu] [perl] problème "lib text::template" suite migration serverGestion d'ERREUR(Resolu)
[Perl] PermissionsErreur Tomcat
Erreur identifiant MysqlGestion des erreur(Resolu)
Erreur de déploiement sous JBossErreur de redéfinition à la compilation.
Oracle : erreur ORA-00947 en insertionErreur ld
Plus de sujets relatifs à : [Perl] Erreur non-lvalue subroutine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR