IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

[langage] Pb POO perl


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [langage] Pb POO perl
    J'ai un pb de programmation orienté objet.
    Le voici:
    J'ai crée une classe avec des methodes mais je n'arrive pas a passer un parametre dans une fonction.
    Je m'expliqe:
    voici quelque ligne de mon fichier pm:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    #-------fichier Mesure.pm------------
     
    package Mesure;
     
    require 'chemins.pl';
    require "fonctions_divers.pl";
     
    sub new
    {
    	my($class,$switch) = @_;
    	my $self ={};
    	bless($self , $class);
    	$self->{SWITCH} = $switch;
    	return $self;
    }
    1;
     
    sub analyse_mesure
    {	
    	my ($oid_mesure,$fichier_mesure,$switch_a_mesurer,$snmpwalk)= @_;
    	print("@_\n");
    	@tableau_mesure=(); #on vide le tableau avant de le remplir
     
    	system("$snmpwalk -v 1 -c public $switch_a_mesurer $oid_mesure > $fichier_mesure");
    	open (SNMP, "$fichier_mesure")  || die "Impossible d'ouvrir $fichier_mesure";
    	while (<SNMP>)
    	{	
    		@champ=split(/:/,$_);
    		@champ2=split(/\n/,$champ[3]);
    		push(@tableau_mesure,$champ2[0]);	
    	}
    	close (SNMP);
    	system("rm $fichier_mesure");
    	return @tableau_mesure;
    }
    voici comment je fait appel de cette methode dans mon programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    my $mesure = Mesure->new ($switch_selectionne);
     
    @tabinterface = $mesure->analyse_mesure("1.3.6.1.2.1.31.1.1.1.1" , "snmpint.txt" , $switch_selectionne , $snmpwalk);
    Et le pb est que le premier parametre qui arrive dans ma méthode est
    Mesure=HASH(0x140679940) et puis apres arrive les autres parametres que j'ai mis.
    Et du coup tout ce trouve décalé.
    Es que quelqu'un pourrai m'aider ou me dire pk es que le premier parametre est Mesure=HASH(0x140679940) au lieu de 1.3.6.1.2.1.31.1.1.1.1.
    Merci

  2. #2
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    C'est normal, dans ta méthode, le premier paramètre est l'objet sur lequel tu va appliquer cette méthode (comme pour le constructeur).
    En l'occurrence, il te dit que ce premier paramètre est une référence sur tableau associatif.
    Verre vide je te plains, verre plein, je te vide.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut c bon
    c bon sa marche. C moi qui avait fait une faute de copier colle sans rajoute le $self.
    Et il est vrai en plus que je vien de me mettre et la prog en perl que depuis 4 sem et a la programmation en POO en perl depuis hier alors je 'est pas encore les bons reflexes, mais avec le tps tout vien.
    Merci.
    @+
    loothoof

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut juste un truc
    Au passge es que tu pourrai m'expliquer le roel du destructeur. c'est a dire qu'une foi le destructeur appelé es que je peut redéclarer $mesure sans que mesure ne soit le même qu'avant.

  5. #5
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    Normalement oui. Sachant qu'au pire, ton nouvel écrasera le précedent.
    Verre vide je te plains, verre plein, je te vide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [langage] Expressions rationnelles (perl/C)
    Par ma2th dans le forum Langage
    Réponses: 11
    Dernier message: 02/08/2004, 18h07
  2. [langage] Script en Perl - besoin d'aide
    Par julfra dans le forum Langage
    Réponses: 8
    Dernier message: 13/05/2004, 14h47
  3. [langage] mkfifo en PERL ?
    Par Gogoye dans le forum Langage
    Réponses: 12
    Dernier message: 21/01/2004, 19h44
  4. [langage] Avis sur Perl
    Par micdie dans le forum Langage
    Réponses: 3
    Dernier message: 30/10/2003, 15h21
  5. [langage] Inclure de perl en c !!!
    Par ryo00 dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2002, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo