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 :

[DEBUTANT] Lister un array


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 55
    Points : 44
    Points
    44
    Par défaut [DEBUTANT] Lister un array
    Bonjour,
    Pour l'école on doit programmer une sorte de carnet d'adresses. L'utilisateur peut ajouter, supprimer, changer, des adresses. Les adresses sont stockées dans un fichier. Pour lister les adresses, j'ai écrit une subroutine listAddressBook. La voila:
    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
     
    sub listAddressBook() {
     
      open (ADDRESS_BOOK, "address_book.dat");
     
      my (@file);
     
      @file = <ADDRESS_BOOK>;
     
      close ADDRESS_BOOK;
     
     
     
      chomp @file;
     
      my ($i);
     
      $i = 0;
     
      while ($i < scalar (@file)) {
     
        print "$file[$i]: \t $file[$i+1] \n";
     
        print "\t$file[$i+3] $file[$i+2], $file[$i+4], $file[$i+5], $file[$i+6]\n";
     
        $i += NUMBER_LINES_PER_ADDRESS; # aantal rijen omhoog
     
      }
     
    }
    Sous Windows Vista, avec ActivePerl, ceci marche parfaitement. Mais quand je l'exécute sous Ubuntu, on dirait qu'il oublie des mots. L'output n'est pas du tout ce qu'il doit être. Comment ça se fait? Je croyais que comme Perl est un langage interprété, qu'il est portable...

    Merci d'avance,

    Yoran

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 208
    Points
    208
    Par défaut
    Salut,

    essai d'utiliser open avec 3 arguments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    open ADDRESS_BOOK,"<:crlf", "address_book.dat"
           or die "E/S : $!\n";
    Les chaines se finissent avec \r\n sous Win, et avec \n sous GNU/Linux.
    La couche E/S :crlf permets d'effecuter les substitutions de CR/LF en saut de ligne et viceversa.

    Il ne s'agit pas de la portabilité de Perl (qui, OUI, est portable )

    lami20j
    --
    lami20j

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 55
    Points : 44
    Points
    44
    Par défaut
    Ok merci beaucoup ça marche! Ah, ce Windows, il doit toujours te compliquer la vie

Discussions similaires

  1. [debutant] lister de maniere recursive les fichiers d'un repertoire
    Par Yannos94 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 25/07/2007, 17h28
  2. Réponses: 21
    Dernier message: 20/06/2006, 16h49
  3. [debutant] lister tout les mots d'une page web!
    Par kriskikout dans le forum Web
    Réponses: 20
    Dernier message: 31/05/2006, 22h47
  4. [debutant] lister le contenu d'un repertoire
    Par azrael88370 dans le forum Débuter
    Réponses: 5
    Dernier message: 12/01/2006, 14h00
  5. [Debutant] Lister les tables d'une base de données
    Par Konrad Florczak dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/07/2005, 16h24

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