Partage
  • Partager sur Facebook
  • Partager sur Twitter

PERL - string argument sub

Le string est vide

Sujet résolu
22 août 2018 à 14:38:02

pushDatas("test001"); 
####
sub pushDatas {
	my $self = shift;
	my($fieldName) = @_;
        print $fieldname;
}

Bonjour,

Je suis debutant PERL. J'ai un warning et pire (coherent avec le warning) l'affichage est une chaine vide. Pourriez-vous m'aider svp ?

An undefined value was used as if it were already defined. It was interpreted as a "" or a 0, but maybe it was a mistake.
To suppress this warning assign a defined value to your variables.

En vous remerciant d'avance.

A+

  • Partager sur Facebook
  • Partager sur Twitter
22 août 2018 à 16:47:21

Yop.

Il semble que le problème est résolu, mais si quelqu'un d'autre tombe là-dessus :

my $self = shift;

est caractéristique de l'émulation de la POO en Perl (sans module consacré). Quand tu fais ça, tu récupères le premier élément du tableau @_, qui est une référence vers l'objet dont vient la fonction.

(Quand tu appelles shift sans argument, l'argument par défaut est le tableau @_.)

Mais là, ta fonction pushDatas est appelée sans objet, donc pas besoin de récupérer l'instance (Elle n'existe pas.) : $self contient la chaîne "test001". $fieldname n'est pas définie : elle contient le premier élément de @_, qui ne contenait qu'un élément qui a déjà été envoyé dans $self.

Autrement dit : n'utilise pas

my $self = shift;

tant que tu n'auras pas abordé l'usage des références en Perl.



-
Edité par Chomp 22 août 2018 à 16:48:48

  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2018 à 15:31:30

Hello,


Effectivement le sujet avait été résolu. J'aurai dû repasser ici pour communiquer la réponse navré^^.

Merci à toi.

  • Partager sur Facebook
  • Partager sur Twitter