IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

expressions régulières pour corriger la typographie d'un texte


Sujet :

Langage Perl

  1. #41
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Emycherie02 Voir le message
    Bonjour,
    j'ai quelques lignes de code qui sont apparemment en Python, je voudrais les transposer en Perl.
    Pouvez-vous m'aider ?
    Merci !


    my $ct_num =~ /^\d+$/
    my @tab = split (/.||/, my $ct_num);
    my @tab_invers = reverse @tab;
    my $i = 0;
    my nb = "";

    foreach my $chiffre ( @tab_invers ){
    $nb = $nb . $chiffre;
    i++;
    print $nb;
    if $i == 3 {
    $nb = $nb . " ";
    i = 0;

    }
    }
    Bonjour,

    ce n'est pas du Python, mais bien du Perl, quoiqu'avec des fautes de syntaxe (par exemple point-virgule manquant à la fin de la première ligne).

  2. #42
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Emycherie02 Voir le message
    J'avais suivi vos recommandations mais apparemment, la syntaxe est défaillante ???

    $minuscule = $1;


    if ( my $string =~ /[.?!] ([a-zàéèùâêîôûç])/g ) {


    say (<check type="majuscule">$minuscule</check>);
    }
    Ton code est incomplet, je ne comprends pas ce que tu cherches à faire.
    Ceci ne peut marcher qu'après une regex effectuant une capture et ayant réussi. Ici, tu n'as pas indiqué de regex avant. Si tu veux l'utiliser en rapport avec la regex qui suit, alors il faut mettre la ligne:
    après le if testant l'expression régulière.

  3. #43
    Candidat au Club
    Femme Profil pro
    Bibliothécaire
    Inscrit en
    Juillet 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bibliothécaire

    Informations forums :
    Inscription : Juillet 2016
    Messages : 42
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Lolo78 Voir le message
    Bonjour,

    ce n'est pas du Python, mais bien du Perl, quoiqu'avec des fautes de syntaxe (par exemple point-virgule manquant à la fin de la première ligne).
    C'est bien ce qu'il me semblait...
    Mon prof dit que c'est du python qui n'aurait pas été correctement transposé en Perl :/
    Qu'elles sont les autres fautes de syntaxe ?
    J'essaierai d'en discuter avec lui !
    merci

  4. #44
    Candidat au Club
    Femme Profil pro
    Bibliothécaire
    Inscrit en
    Juillet 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bibliothécaire

    Informations forums :
    Inscription : Juillet 2016
    Messages : 42
    Points : 3
    Points
    3
    Par défaut
    [QUOTE=Lolo78;8716042]Ton code est incomplet, je ne comprends pas ce que tu cherches à faire.
    [CODE]

    J'aurais voulu indiquer à l'auteur qu'il faut une majuscule après un point.
    J'avais suivi les recommandations (un peu plus haut dans la discussion) mais apparemment, je n'ai pas bien compris !

    Je veux dire que s'il y a une minuscule après un .?!, j'avertis l'auteur qu'il faut peut être une majuscule (je ne prends pas en compte les abréviations)

  5. #45
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Oui, c'est effectivement peut-être du Python "traduit" en Perl. Voici les erreurs que je relève:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    my $ct_num =~ /^\d+$/      # point-virgule manquant et instruction ne faisant rien d'utile: ça vérifie si $_ se termine par des chiffres mais $ct_num reste non initialisé.
    my @tab = split (/.||/, my $ct_num);   # expression régulière incorrecte dans le split. Si l'on désire splitter sur un ".", il faut /\./. Et je ne comprends pas "||".
    my @tab_invers = reverse @tab;
    my $i = 0;
    my nb = "";     # manque un sigil $: my $nb = "";
     
    foreach my $chiffre ( @tab_invers ){
        $nb = $nb . $chiffre;
        i++;          # il faudrait au minimum écrire avec le sigil $: $i++;
        print $nb;
        if $i == 3 {
            $nb = $nb . " ";     
            i = 0;    # il faudrait au minimum écrire avec le sigil $: $i = 0;
        }
    }
    Par ailleurs, même après ces corrections de syntaxe, je ne comprends pas vraiment ce que cherche à faire ce code. Peux-tu donner une idée des données en entrée?

  6. #46
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Emycherie02 Voir le message


    J'aurais voulu indiquer à l'auteur qu'il faut une majuscule après un point.
    J'avais suivi les recommandations (un peu plus haut dans la discussion) mais apparemment, je n'ai pas bien compris !

    Je veux dire que s'il y a une minuscule après un .?!, j'avertis l'auteur qu'il faut peut être une majuscule (je ne prends pas en compte les abréviations)
    Essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( $string =~ /[.?!] ([a-zàéèùâêîôûç])/ ) {
        my $minuscule = $1;
        say "<check type="majuscule">$minuscule</check>";
    }

  7. #47
    Candidat au Club
    Femme Profil pro
    Bibliothécaire
    Inscrit en
    Juillet 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bibliothécaire

    Informations forums :
    Inscription : Juillet 2016
    Messages : 42
    Points : 3
    Points
    3
    Par défaut
    je veux séparer mes chiffres par une espace pour arriver à ceci : 123 456 789 sans prendre en compte la virgule
    j'avais les instructions suivantes (que je suis obligée de suivre) :
    1/ places les chiffres individuellement dans un tableau ;
    2/ Parcourez le tableau de la fin vers le début;
    (alternative peut-être plus simple : inversez le tableau et parcourez-le du
    début à la fin)
    3a/ Concaténez chaque chiffre à une chaîne de caractères et,
    3b/ tous les trois chiffres, concaténez une espace insécable
    (Pour identifier ces séquences de trois chiffres, vous pouvez utiliser un
    compteur et un modulo).

    Je ne vois pas la différence entre le Perl et le Python !

  8. #48
    Candidat au Club
    Femme Profil pro
    Bibliothécaire
    Inscrit en
    Juillet 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bibliothécaire

    Informations forums :
    Inscription : Juillet 2016
    Messages : 42
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Lolo78 Voir le message
    Oui, c'est effectivement peut-être du Python "traduit" en Perl.
    Comment voit-on la différence ?

  9. #49
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Emycherie02 Voir le message
    Comment voit-on la différence ?
    La syntaxe du Python est bien différente. Par exemple, mas de "my", pas de sigils ($ ou @) au début des variables, pas de blocs { et }, mais une indentation particulière, etc.

  10. #50
    Candidat au Club
    Femme Profil pro
    Bibliothécaire
    Inscrit en
    Juillet 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bibliothécaire

    Informations forums :
    Inscription : Juillet 2016
    Messages : 42
    Points : 3
    Points
    3
    Par défaut
    d'accord, je ne comprends pas très bien comment mon code peut être du python...
    peux tu m'aider à en faire quelque chose qui corresponde vraiment à Perl ?
    Je ne m'en sors pas du tout
    merci

  11. #51
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Emycherie02 Voir le message
    je veux séparer mes chiffres par une espace pour arriver à ceci : 123 456 789 sans prendre en compte la virgule
    j'avais les instructions suivantes (que je suis obligée de suivre) :
    1/ places les chiffres individuellement dans un tableau ;
    2/ Parcourez le tableau de la fin vers le début;
    (alternative peut-être plus simple : inversez le tableau et parcourez-le du
    début à la fin)
    3a/ Concaténez chaque chiffre à une chaîne de caractères et,
    3b/ tous les trois chiffres, concaténez une espace insécable
    (Pour identifier ces séquences de trois chiffres, vous pouvez utiliser un
    compteur et un modulo).
    Essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    my $num = "12345678";
    my @digits = reverse split //, $num;
    my $count = 0;
    my $nouveau_num = "";
    for my $chiffre (@digits) {
        $count++;
        $nouveau_num .= $chiffre;
        $nouveau_num .= " " if $count % 3 == 0;
    }
    print scalar reverse $nouveau_num;

  12. #52
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Emycherie02 Voir le message
    d'accord, je ne comprends pas très bien comment mon code peut être du python...
    peux tu m'aider à en faire quelque chose qui corresponde vraiment à Perl ?
    Je ne m'en sors pas du tout
    merci
    Ton code est du Perl (avec des erreurs) et non du Python.

    J'ai mis juste avant un bout de code divisant tes groupes par tranches de 3 chiffres.

  13. #53
    Candidat au Club
    Femme Profil pro
    Bibliothécaire
    Inscrit en
    Juillet 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bibliothécaire

    Informations forums :
    Inscription : Juillet 2016
    Messages : 42
    Points : 3
    Points
    3
    Par défaut
    Merci !!
    Peux-tu m'expliquer ceci : scalar reverse ?

    J'ai de grosses difficultés et j'ai l'impression que mon prof cherche la petite bête...
    Je ne suis pas sortie de l'auberge !
    Merci pour ton aide

  14. #54
    Candidat au Club
    Femme Profil pro
    Bibliothécaire
    Inscrit en
    Juillet 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bibliothécaire

    Informations forums :
    Inscription : Juillet 2016
    Messages : 42
    Points : 3
    Points
    3
    Par défaut
    et celle-ci aussi : $nouveau_num .= " " if $count % 3 == 0;

    je ne sais pas trop comment la commenter.
    quelle est la fonction du modulo ?

  15. #55
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print scalar reverse $nouveau_num;
    Le "scalar" est juste là pour imposer un contexte scalaire à fa fonction reverse. Sinon, reverse considère qu'il travaille sur une liste d'éléments (en l’occurrence une liste à un seul élément) et qu'il doit intervertir les éléments de la liste. Du coup, il n'inverse pas la chaîne de caractère de $nouveau_num. Une autre façon d'obtenir le même résultat serait en deux lignes comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my $nouveau_num_endroit = reverse $nouveau_num;
    print $nouveau_num_endroit, "\n";
    Pour cette autre question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nouveau_num .= " " if $count % 3 == 0;
    % est l'opérateur modulo, ce qui veut dire que "$count % 3" calcule le reste de la division de $count par 3, est, donc, que $count est divisible par 3 (sans reste) si "$count % 3" est égal à 0. Donc, on ajoute un espace entre les chiffres chaque fois que $count est divisible par 3.

    PS: tu as le droit de "plusser" ( ) mes réponses si elles te sont utiles.

  16. #56
    Candidat au Club
    Femme Profil pro
    Bibliothécaire
    Inscrit en
    Juillet 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bibliothécaire

    Informations forums :
    Inscription : Juillet 2016
    Messages : 42
    Points : 3
    Points
    3
    Par défaut
    merci, c'est beaucoup plus clair.
    J'ai "plussé", tes réponses me sont très utiles

  17. #57
    Candidat au Club
    Femme Profil pro
    Bibliothécaire
    Inscrit en
    Juillet 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bibliothécaire

    Informations forums :
    Inscription : Juillet 2016
    Messages : 42
    Points : 3
    Points
    3
    Par défaut
    Merci Lolo78 pour ton aide précieuse.
    J'avais un soucis avec mon ordi et n'ai pas pu essayé le code hier.
    Ce matin, j'ai testé tes propositions, mais il y a des erreurs de "compilation" (...due to compilation error)
    Et donc je ne sais pas trop comment corriger le code...

  18. #58
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    chez moi, ça compile et ça fonctionne. Il faut que tu montres ton code ainsi que les messages d'erreur.

    Impossible de t'aider sans cela.

  19. #59
    Candidat au Club
    Femme Profil pro
    Bibliothécaire
    Inscrit en
    Juillet 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bibliothécaire

    Informations forums :
    Inscription : Juillet 2016
    Messages : 42
    Points : 3
    Points
    3
    Par défaut
    Je mets les deux en pièce jointe.
    Désolée, je ne travaille pas sur mon ordinateur perso et j'ai seulement accès à notepad sans les couleurs.
    J'ai fait une copie d'écran de mon invite de commande.
    Toute aide est la bienvenue, je suis vraiment perdue !!
    Merci
    Fichiers attachés Fichiers attachés

  20. #60
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    plusieurs erreurs dans ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        if ( my $string =~ /[.?!] ([a-zàéèùâêîôûç])/ ) {      # si une minuscule (normale et accentuée) suit 
                                                              # un point, un point d'interrogration ou un point
                                                              # d'exclamation
           my $minuscule   = $1;                              # $1 récupère la minuscule suivant l'espace 
                                                              # après le point, point d'interrogration ou point d'exclamation
           say ("<check type="majuscule">$minuscule</check>");# indiquer à l'auteur de vérifier 
                                                              # la majuscule
        }
        print $minuscule;
    La principale: $string n'a pas été initialisé. Tu veux sans doute avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ($ligne=~ /[.?!] ([a-zàéèùâêîôûç])/ ) {      # si une minuscule (normale et accentuée) suit
    Dans la ligne "say ...", le guillemet avant "majuscule" ferme en fait la chaîne de caractère commencée juste avant "<chech type".

    Si tu veux des guillemets à l'intérieur de la chaîne, tu peux essayer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
           say ("<check type=\"majuscule\">$minuscule</check>";# indiquer à l'auteur de vérifier
    Enfin, comme tu déclares $minuscule à l'intérieur du if, cette variable n'est plus accessible une fois sorti du if.

    Si tu veux vraiment imprimer la valeur de minuscule à cet endroit (mais je ne vous pas pourquoi), alors il faut la déclarer avant le if:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        # indiquer à l'auteur qu'il faut une majuscule 
        my $minuscule;
        if ( my $ligne =~ /[.?!] ([a-zàéèùâêîôûç])/ ) {      # si une minuscule (normale et accentuée) suit 
                                                              # un point, un point d'interrogration ou un point
                                                              # d'exclamation
           $minuscule   = $1;                                # $1 récupère la minuscule suivant l'espace 
                                                              # après le point, point d'interrogration ou point d'exclamation
           say ("<check type=\"majuscule\">$minuscule</check>");# indiquer à l'auteur de vérifier 
                                                              # la majuscule
        }
        print $minuscule;
    Tu as le même problème avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        foreach my $elem ( @loc_lat ) {                       # tant qu'il y a des éléments dans mon tableau
          my $elem =~ s/@loc_lat/<i>@loc_lat<\/i>/g;          # je les mets en italique
        }                                                    
             print $elem;
    Il faut déclarer $elem avant le for si tu veux y accéder après:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        my $elem;
        foreach $elem ( @loc_lat ) {                       # tant qu'il y a des éléments dans mon tableau
            $elem =~ s/@loc_lat/<i>@loc_lat<\/i>/g;          # je les mets en italique
        }                                                    
         print $elem;
    Et aussi ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        for my $chiffre (@tab_invers) {                       # tant qu'il y a des chiffres dans mon tableau inversé
            $compteur++;                                      # j'incrémente mon compteur
            $nouveau_num .= $chiffre;                         # je concatène chaque chiffre à ma chaine de caractère vide
            $nouveau_num .= "\x{A0}" if $compteur % 3 == 0;   # je concatène une espace insécable tous les 3 chiffres
            my $nouveau_num_endroit = reverse $nouveau_num;   # je remets mon numéro à l'endroit
       
        }
        print $nouveau_num_endroit, "\n";                     # j'imprime mon nouveau numéro
    Il faut déclarer $nouveau_num_endroit avant le for pour pouvoir y accéder après:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        
    my $nouveau_num_endroit;
    for my $chiffre (@tab_invers) {                       # tant qu'il y a des chiffres dans mon tableau inversé
            $compteur++;                                      # j'incrémente mon compteur
            $nouveau_num .= $chiffre;                         # je concatène chaque chiffre à ma chaine de caractère vide
            $nouveau_num .= "\x{A0}" if $compteur % 3 == 0;   # je concatène une espace insécable tous les 3 chiffres
            $nouveau_num_endroit = reverse $nouveau_num;   # je remets mon numéro à l'endroit
       
        }
        print $nouveau_num_endroit, "\n";                     # j'imprime mon nouveau numéro

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Expression régulière pour supprimer des doublons
    Par cbroissa dans le forum Langage
    Réponses: 5
    Dernier message: 20/05/2017, 01h59
  2. [RegEx] Expression régulière pour trouver des mots
    Par cbroissa dans le forum Langage
    Réponses: 7
    Dernier message: 26/05/2006, 23h39
  3. [RegEx] Simple expression régulière pour ereg_replace
    Par aurapp dans le forum Langage
    Réponses: 6
    Dernier message: 12/03/2006, 12h34
  4. Expression régulière pour récupérer le nom d'un fichier
    Par calimero2611 dans le forum Langage
    Réponses: 5
    Dernier message: 24/02/2006, 19h00
  5. Expression Régulière pour float
    Par zebiloute dans le forum Langage
    Réponses: 5
    Dernier message: 26/09/2005, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo