PERL créer un tableau 2D a partir d'un txt [Fermé]

Signaler
-
 elbeho -
Bonjour a tous,

Je débute en perl et pour réaliser un traitement sur des valeurs contenues dans un fichier texte; j'aurais besoin des les mettre dans un tableau 2D.

Voici comment le fichier texte se présente :

[code]
premier nom 123 987 876 1452
le-deux 762 123 876
troisième/nom 762 789 0981
un (dernier) 999 526 127
...
[/code]

et voici le genre le tableau que je voudrais obtenir :

[code]
@data = (["premier nom",123,987,876,1452],
["le-deux",762,123,876],
["troisième/nom",762,789,0981],
["un (dernier)",999,526,127],
... )

[/code]

En gros, j'aimerais que tous les :
$data[x][O] me renvoient les noms. Et les

$data[x][y] me renvoient les valeurs. (y>0).


J'ai essayé de faire ca avec des push mais je ne m'en sors pas. les noms sont uniquements composés de lettres et caractère / , ( ) -
et les valeur uniquement des chiffres.

Si quelqu'un pouvait me donner un coup de main...

Merci

1 réponse

Salut

(s'il est encore temps)
Quelque chose comme ca :

while ( <> )
    {
    my ($a, $b);
    if ( /^([^\d]+)\s+(.*)$/ )
        {
        $a = $1;
        $b = $2;
        push @data, [ $a , split (/ /, $b) ];
        }
    }


Notez les [ ] dans le push.
Et il faut peut-etre ameliorer la regexp du if()
Et voir si un hash (%data) avec le nom en cle n'irait pas mieux... mais ca depend du probleme a resoudre :-)

Cordialement