Deutsch   English   Français   Italiano  
<65a56892$0$3013$426a74cc@news.free.fr>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!news.trigofacile.com!usenet-fr.net!proxad.net!feeder1-2.proxad.net!cleanfeed1-b.proxad.net!nnrp4-2.free.fr!not-for-mail
Newsgroups: fr.comp.lang.perl
X-Mozilla-News-Host: news://news.free.fr:119
From: kurtz le pirate <kurtzlepirate@free.fr>
Subject: array of array
Organization: Compagnie de la Banquise
Date: Mon, 15 Jan 2024 18:17:06 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:78.0)
 Gecko/20100101 Thunderbird/78.14.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Language: fr
Content-Transfer-Encoding: 8bit
Lines: 87
Message-ID: <65a56892$0$3013$426a74cc@news.free.fr>
NNTP-Posting-Date: 15 Jan 2024 18:17:06 CET
NNTP-Posting-Host: 88.123.184.107
X-Trace: 1705339026 news-1.free.fr 3013 88.123.184.107:10306
X-Complaints-To: abuse@proxad.net
Bytes: 2591


Bonjour,

Je ne sais pas s'il y a du monde qui vient encore ici, mais je tente ma
chance ;


Donc :
J'ai des données de ce genre :
f 198/216 199/218 2/3 1/1

Le but est de découper chaque couple a/b dans un tableau '@faces'
Le fichier a 'x' lignes comme ça.


J'ai donc fait pour chaque ligne du fichier :

# je decoupe sur le séparateur espace et je mets dans '@line'
@line = split ' ';

# j'enlève le 'f' du début
shift(@line);

# je découpe chaque element de @line en un tableau de deux
# valeurs sur le séparateur '/'
@line = map { [ split /\//, $_ ] } @line;

# je pousse ce tableau dans mon tableau global
push @faces, [@line];



Jusque la, cela semble correct.
L'exemple donné a 4 'couples' mais il peut y en avoir entre 3 et n.


Mais, quand je veux accéder au valeurs :
(les deux boucles c'est juste pour le debug)
for my $i ( 0 .. $#faces ) {
 for my $j ( 0 .. $#{$faces[$i]} ) {
  print "faces[$i,$j] = $faces[$i][$j]\n";
  }
 }


J'obtiens :
faces[0,0] = ARRAY(0x7f8a2987f288)
faces[0,1] = ARRAY(0x7f8a2987ea48)
faces[0,2] = ARRAY(0x7f8a29960b08)
faces[0,3] = ARRAY(0x7f8a2982d9c8)

Alors qu'avec le dumper :
$VAR1 = [
          [
            '198',
            '216'
          ],
          [
            '199',
            '218'
          ],
          [
            '2',
            '3'
          ],
          [
            '1',
            '1'
          ]
        ];



Si quelqu'un peut me dire où je me trompe ...
Merci d'avance.


ps : pour ceux qui ont reconnu, oui, c'est pour convertir des fichiers
obj en autre chose.





-- 
kurtz le pirate
compagnie de la banquise