Deutsch   English   Français   Italiano  
<ttvcn8$efu$1@shakotay.alphanet.ch>

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

Path: ...!weretis.net!feeder8.news.weretis.net!news.imp.ch!news.alphanet.ch!alphanet.ch!.POSTED!not-for-mail
From: Marc SCHAEFER <schaefer@alphanet.ch>
Newsgroups: fr.comp.lang.perl
Subject: Re: Remplacement avec increment
Date: Sat, 4 Mar 2023 12:14:32 -0000 (UTC)
Organization: Posted through news.alphanet.ch
Message-ID: <ttvcn8$efu$1@shakotay.alphanet.ch>
References: <640316a8$0$24798$426a74cc@news.free.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 4 Mar 2023 12:14:32 -0000 (UTC)
Injection-Info: shakotay.alphanet.ch; posting-account="schaefer";
	logging-data="14846"; mail-complaints-to="usenet@alphanet.ch"; posting-host="634ce6c9682d817d72f6177875e2bb4f.nnrp.alphanet.ch"
User-Agent: tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-23-amd64 (x86_64))
Cancel-Lock: sha256:AV/x2Gw1kYh3SyPPTXLnQfte9iSfiOdNAeVmXAN4D5c= sha256:fobItxuZTaXDazimrxnRdXkQ3bnFd3FtuXF+HWeafiU=
Bytes: 2457
Lines: 56

kurtz le pirate <kurtzlepirate@free.fr> wrote:
> #declare f[0] = "16,10,53,36,29";

Je n'ai jamais vu de code Perl avec cette syntaxe
et une recherche rapide ne me montre pas qu'elle existe, mais je me
trompe peut-être?

C'est quoi la différence, en pratique entre:

   my @array = ("16,10,53,36,29", "16,41,45,34,1");

et votre syntaxe?

Aussi, j'aurais tendance plutôt à faire une référence à un tableau dans
un tableau, plutôt qu'un tableau de chaînes:

my @array = ([16, 10, 53, 36, 29], [16, 41, 45, 34, 1]);

> my $n = 0;
> $data =~s/\{/#declare faces [$n++]/eg;

Donc, j'écrirais quelque chose du genre:

my @array;

# mettre ce qui est entre { et } comme chaîne dans @array
$data =~ s/\{[^\}]+\}/push(@array, $_}/eg;

pour faire le tableau de chaînes, on accédera alors
à $array[0], $array[1], etc.

Ou:

sub whatever {
   my $s = $_;

   my @values = split /,/, $s;

   # réf aux valeurs
   push(@array, \@values);
}

$data =~ s/\{[^\}]+\}/whatever($_)/eg;

Ensuite, on accède aux valeurs avec:

   # première valeur du premier groupe
   $array[0]->[0]

   # ou toutes les valeurs, en tant que tableau et pas
   # référence au tableau
   @{$array[0]}

-- 
Attention: limitez le nombre de lignes de citation à l'essentiel, sinon
je ne verrai pas votre réponse. Et si vous écrivez souvent des bobards,
je ne vous lirai plus et je recommanderai (NoCeM) de ne plus vous lire.