Re: Remplacement avec increment

Liste des GroupesRevenir à fcl perl 
Sujet : Re: Remplacement avec increment
De : schaefer (at) *nospam* alphanet.ch (Marc SCHAEFER)
Groupes : fr.comp.lang.perl
Date : 04. Mar 2023, 14: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, 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.

Date Sujet#  Auteur
4 Mar 23 * Remplacement avec increment2kurtz le pirate
4 Mar 23 `- Re: Remplacement avec increment1Marc SCHAEFER

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal