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 :

Creation hash message (did you forget to declare "my %hash"?


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 198
    Par défaut Creation hash message (did you forget to declare "my %hash"?
    Bonjour,

    Je vous sollicité pour un problème que j'imagine tout bête mais je n'en vois la logique

    Je souhaite créer un hash en lisant un fichier texte et récupérant deux valeurs (key et value) selon des critères.
    Les deux valeurs sont bien récupérées, voir le dernier résultat.

    Exemple de fichier source:
    SNMPv2-SMI::mib-2.47.1.1.1.1.11.1 = ""
    SNMPv2-SMI::mib-2.47.1.1.1.1.11.1001 = STRING: "FCW2024A2W3"
    SNMPv2-SMI::mib-2.47.1.1.1.1.11.1002 = ""
    SNMPv2-SMI::mib-2.47.1.1.1.1.11.1003 = ""
    SNMPv2-SMI::mib-2.47.1.1.1.1.11.1004 = ""
    SNMPv2-SMI::mib-2.47.1.1.1.1.11.1005 = ""
    SNMPv2-SMI::mib-2.47.1.1.1.1.11.1006 = STRING: "DCB201660EM"
    SNMPv2-SMI::mib-2.47.1.1.1.1.11.1007 = ""
    Résultat attendu
    key 1001 value FCW2024A2W3
    key 1006 value DCB201660EM

    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
    use strict;
    use warnings;
    use Data::Dumper;
    use feature 'say';
    no warnings 'uninitialized';
     
    open (my $serial, "<", "$ARGV[0]");
     
    my $hash;
     
    while (<$serial>) {
    	next if $_ =~ /""/;
    	$_ =~ s/"//g;
    	my ($OID, $serie) = (split /[.\s]/)[7,-1];
    	$hash{$OID} = $serie;
    	}	
     
    print Dumper \%hash;
    Résultat
    $ perl test.pl serial.txt
    Global symbol "%hash" requires explicit package name (did you forget to declare "my %hash"?) at test.pl line 24.
    Global symbol "%hash" requires explicit package name (did you forget to declare "my %hash"?) at test.pl line 28.
    Execution of test.pl aborted due to compilation errors.

    j'ai bien les valeurs si j'affiche les valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while (<$serial>) {
    	next if $_ =~ /""/;
    	$_ =~ s/"//g;
    	my ($OID, $serie) = (split /[.\s]/)[7,-1];
    	say "$OID et $serie";
    	}

    Résultat:
    $ perl test.pl serial.txt
    1001 et FCW2024A2W3
    1006 et DCB201660EM


    Merci !

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Il n'y a pas de ligne 24 et 28 dans le code que tu as posté :/

    Par contre, ligne 9, tu déclares $hash (un scalaire) au lieu de déclarer %hash (un hash).

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 198
    Par défaut
    Merci Philou

    C'était trop gros, honte sur moi

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

Discussions similaires

  1. Did you forget to inherit module
    Par Jacky31 dans le forum GWT et Vaadin
    Réponses: 14
    Dernier message: 02/08/2010, 15h47
  2. RPC "did you forget to inherit a required module?"
    Par gwinyam dans le forum GWT et Vaadin
    Réponses: 21
    Dernier message: 31/05/2010, 11h21
  3. [SmartGWT] did you forget to inherit a required module?
    Par touille dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 05/05/2010, 10h46
  4. problème avec GWT:did you forget to inherit a required module
    Par riadhhwajdii dans le forum GWT et Vaadin
    Réponses: 10
    Dernier message: 03/02/2010, 15h42
  5. [Free Pascal] [2.2.4] Message "link.res contains output sections; did you forget -T?"
    Par whatelse dans le forum Free Pascal
    Réponses: 4
    Dernier message: 16/11/2009, 20h56

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