Perl : Passer une structure..

Perl : Passer une structure.. - Perl - Programmation

Marsh Posté le 13-10-2005 à 13:35:17    

Hello,
 
Je cherche a passer une structure en parametre d'un fct, comment faire ??
J'ai essaye avec une reference et vraisemblablement, ca ne fonctionne pas...
 
Merci..

Reply

Marsh Posté le 13-10-2005 à 13:35:17   

Reply

Marsh Posté le 13-10-2005 à 14:12:54    

post un bout de ton code
 
kand tu parle de structure tu veux dire une structure C ou une "structure" perl ?

Reply

Marsh Posté le 13-10-2005 à 14:20:12    

Une structure perl.. je suis feignant j'ai pas envie de faire full-objet..
:)
 
 
donc ca il me dit qu'il ne peut pas acceder a kkchose de non-initialise...
 

Code :
  1. #ma structure
  2. struct device =>
  3. {
  4. name => '$',
  5. raid => '$',
  6. raiddevs => '@',
  7. mount => '$',
  8. status => '$',
  9. };
  10. #une fonction qui affiche le parametre name
  11. sub fct
  12. {
  13.    print $_->name;
  14. }
  15. #appel a la fct
  16. $s = device->new();
  17. $s->name("toto" );
  18. fct($s);


Message édité par kemkem le 13-10-2005 à 15:43:23
Reply

Marsh Posté le 13-10-2005 à 14:20:31    

merci de votre aide...


Message édité par kemkem le 13-10-2005 à 14:21:24
Reply

Marsh Posté le 13-10-2005 à 16:03:44    

donc tu utilise Class-Struct
si tu commence à vouloir ajouter des method à ton objet (autre que des accesseurs) alors Class-Struct n'est sans doute plus la bonne solution.
 
Pour ta fonction fct(), c'est ta recuperation du premier argument qui ne va pas: c'est $_[0] qui faut utiliser et non $_


Message édité par pospos le 13-10-2005 à 16:04:08
Reply

Marsh Posté le 13-10-2005 à 16:38:05    

C'est ca..
et ca marche...
 
merci bcp du renseignment...
 
on peut mettre des fonctions "membres" dans les struct ??

Reply

Marsh Posté le 13-10-2005 à 19:40:18    

non, c'est juste des données avec des accesseurs, aucune methode.
Si tu veux des methodes il faut faire de "vrai" objet. Si tu aime bien ce style d'ecriture objet tu peux essayer Class-Closure à la place du model standard

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed