Je sais que c'est une question assez simple, mais je ne peux pas comprendre comment stocker toutes les valeurs de mon tableau comme je le souhaite.
Voici une petite partie de ce que le fichier .txt ressemble à: Chaque valeur est délimitée par deux espaces - si la valeur suivante est positive - ou un espace et un espace et un "-" - si La valeur suivante est négative p> ici est le code: p> Je comprends que @array ne tient que la dernière ligne qui lui a été transmise. Y a-t-il un moyen d'obtenir @array pour conserver toutes les lignes? P> P>
4 Réponses :
Si le fichier est faible par rapport à la mémoire disponible de votre machine, vous pouvez simplement utiliser la méthode ci-dessous pour lire le contenu du fichier dans une matrice si vous allez lire un très Grand fichier, il est préférable de la lire en ligne par ligne, mais utilisez Push A > Pour ajouter chaque ligne à la fin du tableau. P> push(@array,$line);
Bien que ce soit génial de fournir des solutions aux problèmes plus importants, ce serait bien si vous avez également répondu à la question posée.
try this... sub room { my $result = ""; open(FILE, <$_[0]); while (<FILE>) { $return .= $_; } close(FILE); return $result; } so you have a basic functionality without great words. the suggest before contains the risk to fail on large files. fastest safe way is that. call it as you like...my @array = &room('/etc/passwd');print room('/etc/passwd');you can shorten, rename as your convinience believes. to the kidding ducks nearby: by this way the the push was replaced by simplictiy. a text-file contains linebreaks. the traditional push removes the linebreak and pushing up just the line. the construction of an array is a simple string with linebreaks. now contain the steplength...
Vous n'êtes pas clair sur ce que vous voulez réaliser.
est chaque ligne d'un élément de votre tableau? p>
est chaque ligne d'une matrice dans votre tableau et vos "mots" sont les éléments de Ce tableau? p>
de toute façon. p>
Voici comment vous pouvez obtenir les deux: P>
use strict; use warnings; use Data::Dumper; # Read all lines into your array, after removing the \n my @array= map { chomp; $_ } <>; # show it print Dumper \@array; # Make each line an array so that you have an array of arrays $_= [ split ] foreach @array; # show it print Dumper \@array;
Duplicatésible possible de La bonne façon de lire une donnée Fichier dans un tableau