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.
Haut de la page
Les messages affichés proviennent d'usenet.
NewsPortal