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 :

Masque l'info du next


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut Masque l'info du next
    Bonjour,

    Dans mon code j'ai mis un "next" du coup quand je lance :

    j'ai ceci qui me spam mon invite de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Exiting subroutine via next at fonctions.pl line 45, <FICHIER> line 5049
    Comment faire pour le masquer ?

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 39
    Par défaut Utilise return
    Il faut utiliser return pour quitter une fonction. next sert à passer à l'itération suivante d'une boucle.

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut
    Je veux justement utiliser next pour passer a l'itération suivante de la boucle !

    Donc je DOIS utiliser next !

    voici ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    sub CompteEspaces{
    	my ($ligneloc ) = @_;
    	if ( $ligneloc =~ m/^\s*.head\s(\w)\s/ ){
    		$nIndent = $1;
    		return $nIndent; # retourne le nombre de tabulation(s)
    	}
    	else{
    		print ECRIRE_PortageAPT $ligneloc;
    		next;
    	}
    }
    1;
    Donc je répète, je veux garder "next" à la fin de ma boucle car je veux passer à l'itération suivante d'une boucle mais je ne comprend pas pourquoi je suis spamé par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exiting subroutine via next at fonctions.pl line 45, <FICHIER> line 5049
    je voudrais les masquer ou les supprimer ..

    Merci de votre aide

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 39
    Par défaut
    Les messages d'erreurs de Perl ne sont pas du spam ... Pour les faire disparaître, il faut écrire un code correct.

    Il n'y a pas de boucle dans le code de la fonction donc next ne sert à rien.

    Si la boucle est dans le code appelant, vous pouvez retourner une valeur spéciale comme -1 et faire un next dans le code ou est la boucle dans ce cas.

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Il faut relire les cours de Perl. Ton code ne contient pas de boucles, mais des conditions(si sinon). Donc, tu as un problème de conception à revoir.

    Citation Envoyé par PerlPicker Voir le message
    Les messages d'erreurs de Perl ne sont pas du spam ... Pour les faire disparaître, il faut écrire un code correct.

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Je suppose que la boucle se trouve autour de l'appel à la fonction CompteEspaces(). Il te faut donc faire ton next dans cette boucle, en utilisant une condition utilisant une valeur retournée par cette fonction, un peu du style :

    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
    17
    18
    while (<>) {
      my $indent = CompteEspaces($_);
      next if $indent  == undef;
     
      # ...
    }
     
    sub CompteEspaces{
    	my ($ligneloc ) = @_;
    	if ( $ligneloc =~ m/^\s*.head\s(\w)\s/ ){
    		$nIndent = $1;
    		return $nIndent; # retourne le nombre de tabulation(s)
    	}
    	else{
    		print ECRIRE_PortageAPT $ligneloc;
    		return undef;
    	}
    }

Discussions similaires

  1. info-bulle masqué par un div en overflow
    Par speedev dans le forum Mise en page CSS
    Réponses: 19
    Dernier message: 13/10/2006, 12h31
  2. Réponses: 3
    Dernier message: 25/07/2002, 10h42
  3. [Manip de fichiers] Fonction retournant des infos
    Par sans_atouts dans le forum C
    Réponses: 3
    Dernier message: 24/07/2002, 14h16
  4. Bas les masques
    Par benj63 dans le forum C++Builder
    Réponses: 8
    Dernier message: 03/07/2002, 17h05
  5. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

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