2013-07-19 4 views
0

J'utilise perl pour la première fois. J'essaye de lire une ligne du fichier d'entrée et de la stocker dans un tableau. Notez que le fichier d'entrée contient une seule ligne avec un groupe de mots.Comment lire une ligne dans un tableau en utilisant perl

J'ai essayé en utilisant le code suivant:

open input, "query"; 
my @context = <input>; 

Mais cela donne une erreur de syntaxe. Comment pourrais-je résoudre ce problème?

+1

S'il vous plaît donner un exemple de travail, fournir aussi ce que vous avez dans « requête ». Ou est-ce votre exemple? Aussi, quel est le message d'erreur? –

Répondre

4

Il ne donne pas d'erreur de syntaxe. IT fonctionne même bien s'il n'y a qu'une seule ligne. Ce qui suit n'obtenir la première ligne, même s'il y a plus d'un:

my @context = scalar(<input>); 

Mais pourquoi ne pas vous venez

my $context = <input>; 
+0

Merci pour l'aide – nish

3

Quelle est l'erreur de syntaxe? À mon humble avis, il n'en écrit aucun. Mais je suggère quelques améliorations

  1. Toujours utiliser use strict; use warnings; comme première ligne! Cela aide à détecter beaucoup de problèmes possibles.
  2. Le code ne gère pas les erreurs.
  3. Utilisez des variables pour les gestionnaires de fichiers. L'utilisation de bareword est obsolète.
  4. Ouvrir le fichier à lire si vous avez besoin de lire uniquement à partir d'un fichier.
  5. Les nouvelles lignes de fin seraient peut-être supprimées du tableau.
  6. Si le fichier n'a pas besoin d'être ouvert, cela vaut la peine de le fermer. Ceci n'est pas nécessaire car exit le ferme automatiquement, mais il est recommandé de fermer les fichiers explicitement.

Il pourrait être:

#!/usr/bin/perl 

use strict; 
use warnings; 

open my $input, "<infile" or die "$!"; 
my @context = map { chomp; $_;} <$input>; 
close $input; 
Questions connexes