Sujet : Re: Remplacement avec increment
De : schaefer (at) *nospam* alphanet.ch (Marc SCHAEFER)
Groupes : fr.comp.lang.perlDate : 04. Mar 2023, 13:14:32
Autres entêtes
Organisation : Posted through news.alphanet.ch
Message-ID : <ttvcn8$efu$1@shakotay.alphanet.ch>
References : 1
User-Agent : tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-23-amd64 (x86_64))
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, sinonje 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.