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] [Débutant] Erreur scalar found


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 46
    Points : 35
    Points
    35
    Par défaut [langage] [Débutant] Erreur scalar found
    Bonjour,

    je me mets au perl pour parser un document xml (on ne m'a pas laissé le choix du langage! ).

    En tout cas j'ai installé perl sur mon windows xp (là non plus j'ai pas le choix! ) et j'ai récupéré un premier script sur le net pour parser un fichier.
    Le voila:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #/usr/local/bin/perl
     
    # utiliser le module
    use XML::Simple;
     
    # créer un objet
    $xml=new XML::Simple;
     
    # lire le fichier XML
    $data=$xml->XMLin("./data.xml");
     
    # accéder aux données XML
    print Dumper ($data)
    Mais lorsque j'exécute ce script dans la console j'obtiens l'erreur suivante 2 fois:

    scalar found where operator expected at [...] line 9 near $xml
    Je ne comprends pas cette erreur. Est-ce que quelqu'un aurait la gentillesse de me l'expliquer svp? J'ai déjà fait un peu de perl en cours l'année dernière mais c'était pas la matière dans laquelle j'étais le plus attentif

    Merci!

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut Re: [Débutant] Erreur scalar found
    Bonjour,

    Citation Envoyé par bartmarley
    je me mets au perl pour parser un document xml (on ne m'a pas laissé le choix du langage! ).
    Et à mon avis, "on" aura eu raison

    Citation Envoyé par bartmarley
    En tout cas j'ai installé perl sur mon windows xp (là non plus j'ai pas le choix! )
    Soyons pragmatiques, même si certains disent que Windows, c'est le *MAL*, ça n'empêche pas que ce soit un environnement largement répandu. Si Perl est disponible dessus ... eh bien profitons-en pour civiliser Windows .

    Citation Envoyé par bartmarley
    et j'ai récupéré un premier script sur le net pour parser un fichier.
    Le voila:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #/usr/local/bin/perl
     
    # utiliser le module
    use XML::Simple;
     
    # créer un objet
    $xml=new XML::Simple;
     
    # lire le fichier XML
    $data=$xml->XMLin("./data.xml");
     
    # accéder aux données XML
    print Dumper ($data)
    Mais lorsque j'exécute ce script dans la console j'obtiens l'erreur suivante 2 fois:

    scalar found where operator expected at [...] line 9 near $xml
    Je ne comprends pas cette erreur. Est-ce que quelqu'un aurait la gentillesse de me l'expliquer svp? J'ai déjà fait un peu de perl en cours l'année dernière mais c'était pas la matière dans laquelle j'étais le plus attentif

    Merci!
    Tout d'abord, activer les warnings et les "strictures" est une bonne habitude à prendre ... Evidemment, une fois que c'est fait, la déclaration préalable des variables devient obligatoire ...

    Ensuite, pour utiliser le Dumper, il faut avoir au préalable chargé le module Data:umper.

    Par ailleurs, ajouter un ";" pour terminer la ligne du print serait une bonne idée, pour ne pas avoir d'erreur si l'on poursuit le script en oubliant de le mettre ...

    Avec ces corrections, le script devient :
    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
    #!/bin/perl
     
    use warnings;
    use strict;
     
    # utiliser le module XML simplifié
    use XML::Simple;
     
    # utiliser le module DataDumper
    use Data::Dumper;
     
    # créer un objet
    my $xml=new XML::Simple;
     
    # lire le fichier XML
    my $data=$xml->XMLin("./data.xml");
     
    # accéder aux données XML
    print Dumper ($data);
    Et ça, ça fonctionne parfaitement chez moi.

    Bonne continuation.

  3. #3
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 861
    Points : 4 828
    Points
    4 828
    Par défaut
    Salut

    Euh, franchement, j'ai testé ton code, mis à part un point virgule qui manque à la fin, je n'ai pas d'erreur de syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #/usr/bin/perl
     
    # utiliser le module
    use XML::Simple;
     
    # créer un objet
    $xml=new XML::Simple;
     
    # lire le fichier XML
    $data=$xml->XMLin("./ip.xml");
     
    # accéder aux données XML
    print Dumper ($data);
    En revanche, je n'ai pas d'affichage de mon fichier XML. As-tu bien lu la doc sur CPAN ?

    @++

  4. #4
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 861
    Points : 4 828
    Points
    4 828
    Par défaut
    Bon, j'ai trouvé ! Tu avais oublié d'incorporer un module : "Data:umper".
    Voici tel que ton script devrait être :
    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
     
    #/usr/bin/perl -w
     
    # utiliser le module
    use XML::Simple;
    use Data::Dumper;
    use strict;
     
    # créer un objet
    my($xml)=new XML::Simple;
     
    # lire le fichier XML
    my($data)=$xml->XMLin("./ip.xml");
     
    # accéder aux données XML
    print Dumper ($data);
    A noter que ceci apparaît dans la doc du module XML::Simple dans CPAN. Moralité, CPAN is the truth !

    @++

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 861
    Points : 4 828
    Points
    4 828
    Par défaut
    Arrrghhhhhhhh !!!!!!!!! Grillé par mon propre padawan !!!!!
    L'élève a dépassé le maître !!!

    @++

    GLDavid, qui va se coucher !

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 46
    Points : 35
    Points
    35
    Par défaut
    Merci

    Ca marche!

    Je ne comprends pas pourquoi dans le script que j'ai trouvé sur le net il manquait ces trucs!

    En tout cas maintenant je pense avoir compris la base du truc.

    Merci encore pour l'aide!

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

Discussions similaires

  1. Gestion d'erreur : not found
    Par Lagnio dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 17/08/2010, 09h57
  2. [AJAX] Ajax + struts + erreur not Found
    Par ammouna24 dans le forum AJAX
    Réponses: 1
    Dernier message: 25/05/2009, 15h39
  3. erreur classnot found avec com.oreilly
    Par jpsegret dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/05/2007, 11h17
  4. Erreur NOT FOUND
    Par cesoir dans le forum Forms
    Réponses: 6
    Dernier message: 29/06/2006, 14h44
  5. Scalar found where operator expected at...
    Par Mr Hyde dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 16h06

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