version fonctionnelle de la substitution de chaine.
2 réponses
Matthieu Moy
Bonjour,
En perl, il y a le très fameux
$x =~ s/a/b/ ;
Pour appliquer la substitution s/a/b à x.
Mais y-a-t il une version fonctionnelle de cette substitution, c'est à
dire une instruction qui ne modifie pas $x et qui renvoie le résultat
de la substitution.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Michel Hiver
Bonjour,
En perl, il y a le très fameux
$x =~ s/a/b/ ;
Pour appliquer la substitution s/a/b à x.
Mais y-a-t il une version fonctionnelle de cette substitution, c'est à dire une instruction qui ne modifie pas $x et qui renvoie le résultat de la substitution.
Tu peux faire quelque chose comme ca:
Dans le cas d'une variable magique, globale ou locale:
$_ = 'azazazazaza'; print do { local $_ = $_; s/a/b/g; $_ };
Le bloc 'do { ... }' devient effectivement une fonction retournant la valeur substituee dans toucher au $_ original.
Dans le cas d'une variable privee, il te faut utiliser 'my' en lieu et place de local:
my $x = 'azazazazaza'; print do { my $x = $x; $x =~ s/a/b/g; $x };'
J'espere que ca aide.
Bonjour,
En perl, il y a le très fameux
$x =~ s/a/b/ ;
Pour appliquer la substitution s/a/b à x.
Mais y-a-t il une version fonctionnelle de cette substitution, c'est à
dire une instruction qui ne modifie pas $x et qui renvoie le résultat
de la substitution.
Tu peux faire quelque chose comme ca:
Dans le cas d'une variable magique, globale ou locale:
$_ = 'azazazazaza';
print do { local $_ = $_; s/a/b/g; $_ };
Le bloc 'do { ... }' devient effectivement une fonction retournant la
valeur substituee dans toucher au $_ original.
Dans le cas d'une variable privee, il te faut utiliser 'my' en lieu et
place de local:
my $x = 'azazazazaza';
print do { my $x = $x; $x =~ s/a/b/g; $x };'
Mais y-a-t il une version fonctionnelle de cette substitution, c'est à dire une instruction qui ne modifie pas $x et qui renvoie le résultat de la substitution.
Tu peux faire quelque chose comme ca:
Dans le cas d'une variable magique, globale ou locale:
$_ = 'azazazazaza'; print do { local $_ = $_; s/a/b/g; $_ };
Le bloc 'do { ... }' devient effectivement une fonction retournant la valeur substituee dans toucher au $_ original.
Dans le cas d'une variable privee, il te faut utiliser 'my' en lieu et place de local:
my $x = 'azazazazaza'; print do { my $x = $x; $x =~ s/a/b/g; $x };'