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 :

Afficher x ligne au dessus d'un caractère


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut Afficher x ligne au dessus d'un caractère
    Bonjour,

    Je bloque sur un petit point dans mon script.

    Actuellement, mes données sont stocké dans un tableau.
    Si une ligne du tableau contient le caractère "ok", j'incrémente mon compteur.

    Cependant, si la première condition est vrai, j'aimerais afficher la 5ème ligne au dessus du caractère "ok".

    Voici la boucle que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sub OK
    {
    	my $ok = shift ;
    	my $ligne ;
    	my $compteur_una=0; 
     
    	my @tab=`xxx`   ;
    	print DEBUGFILE @tab ;
    	foreach $ligne (@tab)
      	{
    		if ($ligne =~ /.*state=ok.*/) { $compteur_ok++}
    	}
    Merci par avance pour le petit coup de pouce

  2. #2
    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 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    le plus simple dans ce cas est de boucler sur les indices du tableau et non sur ses valeurs.

    Quelque chose dans ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	my @tab=`xxx`   ;
    	print DEBUGFILE @tab ;
    	foreach my $indice (0.. $#tab)
      	{
    		if ($tab[$indice] =~ /.*state=ok.*/) { 
                        $compteur_ok++;
                        print $tab[$indice - 5];
     
                    }
    	}

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut
    Merci pour cette réponse expresse.

    Je viens de débuter en perl, et je ne comprends pas le Pouvez-vous me l'expliquer svp

  4. #4
    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 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    La variable spéciale $#tab contient l'indice du dernier élément du tableau @tab. Donc, par exemple, la valeur 9 si le tableau à 10 éléments (de 0 à 9).

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut
    Très bien, j'ai essayé de l'implémenter le bout de code dans mon script mais celui-ci ne fonctionne pas.
    Avec quel outil puis-je debugger car je ne sais pas où est mon erreur...

    Je suis nouveau sur perl donc j'apprends au fur et à mesure.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    sub ok
    {
    	my $ok = shift ;
    #	my $ligne ;
    	my $compteur_ok=0; 
    	my $result=0 ;
     
    	my @tab=`xxx`   ;
    	print DEBUGFILE @tab ;
    	foreach my $indice (0 .. $#tab)
      	{
    		if ($tab[$indice] =~ /.*state=ok.*/) {
    			$compteur_ok++;
    			print $tab[$indice - 5];
    	}
     
    	$result= $compteur_ok;
     
    if ($result != 0)
    	{
    	open(OUTFILE, ">>$HOME/$OUTFILE") or die "Impossible d’ouvrir: $!";
    	print OUTFILE "ok=$compteur_ok\n" ;
    	close OUTFILE ;
    	return $compteur_ok;
    	}
    }

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut
    Pour bien comprendre la demande voici un petit exemple :

    11111111
    abc
    def
    ghi
    ok
    22222222
    abc
    def
    ghi
    ok
    33333333
    abc
    def
    ghi
    ok


    Avec comme retour :
    OK = 3
    11111111
    22222222
    33333333

    Je ne sais pas si c'est plus compréhensible comme cela.

  7. #7
    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 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    celui-ci ne fonctionne pas.
    est un diagnostic tout-à-fait insuffisant pour que l'on puisse t'aider. Il faut au minimum expliquer plus précisément ce que fait le programme (ou ce qu'il ne fait pas) et en quoi cela diffère de ce que tu désires.

    Apparemment, d'après ton nouveau message, c'est la quatrième ligne au-dessus plutôt que la cinquième que tu désires imprimer. Essaie de modifier la ligne de code voulue comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print $tab[$indice - 4];
    Ensuite, ton expression régulière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($tab[$indice] =~ /.*state=ok.*/)
    cherche la chaîne state=ok dans les lignes de ton tableau, mais, d'après ton exemple, la ligne ne contient pas state=, mais seulement ok. Avec ces données en entrée, ça ne peut pas marcher. Si tu as bien décrit tes données en entrée, remplace la ligne par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($tab[$indice] =~ /ok/)
    Enfin, si tu veux ton compteur avant les lignes se trouvant quatre lignes plus haut que la ligne comportant la chaîne "ok":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    OK = 3
    11111111
    22222222
    33333333
    il va falloir procéder autrement, car dans le bout de code que j'ai proposé, on imprime les lignes au moment où on les voit, et le compteur ne peut être imprimé qu'à la fin. Mais, ça, c'est secondaire, on peut voir cela plus tard. Dans l'immédiat, il faut déjà que ton programme détecte ce que tu cherches.

    Le mieux serait que tu montres (si possible) ton vrai tableau en entrée, donc ce qu'a produit la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print DEBUGFILE @tab ;

  8. #8
    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 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Une petite aide sur le débogage en Perl:

    FAQ Débogage sous Perl

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut
    Voici un extrait de mon fichier débug
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x.x.x.x: address=x.x.x.x; frame=backup; notification=updated; argument=NULL; date="Mon Oct 21 08:10:24 2018"; state=ok;
    Le script va passer en revu plusieurs adresses via une commande externe.
    Mon objectif est donc de faire remonter les adresses qui dispose de l'état ok.

    Il faut pour cela deux variables : la première, un compteur qui compte le nombre d’occurrence "ok".
    La deuxième, qui affiche l'adresse (x.x.x.x) pour laquelle l'état est en ok.

    Je ne sais pas si cela est un peu plus clair pour voir.

    Merci pour la documentation sur le debug ! Je vais voir cela

  10. #10
    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 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Il faudrait savoir à quoi ressemble ton tableau exactement.

    L'une des stratégies de débogage expliquées dans ma FAQ est l'utilisation du module Data::Dumper. C'est sans doute la première chose à faire ici.

    Au début de ton programme, tu mets la commande suivante:
    pour charger le module dans ton programme.

    Ensuite, à l'endroit où tu as ton instruction d'impression (après le chargement du résultat de la commande externe dans le tableau @tab), tu remplaces l'instruction d'impression par celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print Dumper \@tab;
    cela permettra de connaître exactement ce que contient ce tableau et d'ajuster le code en conséquence.

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    L'utilisation du Data::Dumper correspond à ce que j'obtiens avec mon fichier debug

    Voici un extrait du Data::Dumper :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
              'x.x.x.x.: address=x.x.x.x; frame=backup; notification=updated; argument=NULL; data="Thu Jan 15 16:09:17 2009"; state=ok;',
    Voici l'extrait de mon fichier debug :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x.x.x.x: address=x.x.x.x; frame=backup; notification=updated; argument=NULL; date="Mon Oct 21 08:10:24 2018"; state=ok;

    Cependant, de mon côté je ne sais pas quelle méthode est le plus simple afin de pouvoir récupérer le champ "address" lorsque le state est "ok"

  12. #12
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut
    Afin de contourner le problème comment puis-je faire pour associer le résultat de la commande print $ligne dans une variable ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	
    	my $ligne ;
    	my $compteur_ok=0; 
    
    	my @tab=`xxx`   ;
    	print DEBUGFILE @tab ;
    	foreach $ligne (@tab)
      	{
    		if ($ligne =~ /.*state=ok.*/) { 
    			$compteur_ok++;
    			print $ligne}
    	
    	}

  13. #13
    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 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par musha76 Voir le message
    Bonjour,

    L'utilisation du Data::Dumper correspond à ce que j'obtiens avec mon fichier debug

    Voici un extrait du Data::Dumper :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
              'x.x.x.x.: address=x.x.x.x; frame=backup; notification=updated; argument=NULL; data="Thu Jan 15 16:09:17 2009"; state=ok;',
    Donc les données ne sont pas sur plusieurs éléments du tableau comme tu le disais jusqu'à présent, mais dans le même élément du tableau. Il ne faut donc pas chercher quatre éléments plus haut dans le tableau, mais explorer le début du même élément.

    Essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach my $ligne (@tab) {
    	if ($ligne =~ /.*state=ok.*/) { 
            $compteur_ok++;
    		my $adresse = $1 if $ligne =~ /address=([.\d]+);/
    		print "$adresse\n";
    	}
    }

  14. #14
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut
    Merci le code fonctionne nickel !

    Par contre je ne comprends pas la variable $adresse ne s’incrémente pas dans mon fichier

    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
    19
    	foreach $ligne (@tab)
      	{
    		if ($ligne =~ /.*state=ok.*/) { 
    			$compteur_ok++;
    				my $adresse = $1 if $ligne =~ /address=([.\d]+)/;
    				#print "$adresse";
    		}
     
    	}
     
     
    if ($compteur_ok != 0)
    	{
    	open(OUTFILE, ">>$HOME/$OUTFILE") or die "Impossible d’ouvrir: $!";
    	print OUTFILE "OK=$compteur_ok:$adresse\n" ;
    	close OUTFILE ;
    	return $compteur_ok, $adresse;
    	}
    }
    Mon fichier comprend simplement "OK=2:"

    Savez-vous pourquoi cette dernière ne s'ajoute pas à mon fichier ?

  15. #15
    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 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Ta variable $adresse n'existe que localement dans le if, à l'intérieur de la boucle foreach. Elle n'est pas définie là où tu essaie de l'imprimer.

  16. #16
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut
    Merci pour votre aide

    Je pense que j'ai un petit problème avec la commande return...

    J'aimerai que la sortie de mon fichier soit de la forme "OK=$adresse".
    Sauf qu'actuellement, mon fichier de sortie ne comprend que la dernière valeur de $adresse...

    Pouvez-vous svp m'indiquer d'où vient mon problème, et si possible de me mettre sur la piste pour résoudre ce problème.

    À savoir que je vois bien toutes mes adresses grâce au print de la première boucle if mais que ces dernières ne s'incrémente pas dans mon fichier de sortie compris dans la deuxième boucle

    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
    19
    20
    21
    22
    23
    24
    25
    26
    sub ok
    {
    	my $ligne ;
    	my $compteur_ok=0; 
    	my $adresse ;
     
    	my @tab=`xxx`   ;
    	print DEBUGFILE @tab ;
    	foreach $ligne (@tab)
      	{
    		if ($ligne =~ /.*state=ok.*/) { 
    			$compteur_una++;
    				$adresse = $1 if $ligne =~ /address=([.\d]+)/;
    				print "$adresse\n";
     
    		}	
    	}
     
    if ($compteur_ok != 0)
    	{
    	open(OUTFILE, ">>$HOME/$OUTFILE") or die "Impossible d’ouvrir: $!";
    	print OUTFILE "OK=$adresse" ;
    	close OUTFILE ;
    	#return $compteur_una, $adresse;
    	}
    }

  17. #17
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 135
    Points : 70
    Points
    70
    Par défaut
    Est-il possible de d'enregistrer les données de $adresse dans un tableau pour lire ces dernières dans la deuxième boucle ?

    Ps : Désolé pour le double post

  18. #18
    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 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    désolé, mais je suis actuellement en déplacement en Allemagne avec un emploi du temps surbooké et un accès internet limité, j'ai du mal à me connecter et à répondre.

    Oui, l'idée serait de créer un tableau global (@tab ci-dessous) et d'y stocker les valeurs intermédiaires pour les imprimer à la fin.

    Ce pourrait être quelque chose dans ce genre (pas testé, je ne peux pas pour l'instant):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my @tab;
    foreach my $ligne (@tab) {
    	if ($ligne =~ /.*state=ok.*/) { 
            $compteur_ok++;
    		my $adresse = $1 if $ligne =~ /address=([.\d]+);/
    		push @tab, "$adresse";
    	}
    }
    # ici, utiliser @tab selon les besoins.

  19. #19
    Membre actif Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 151
    Points : 208
    Points
    208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    my @adresses ;
     
    my @tab=(	'1.1.1.1.: address=1.1.1.1; frame=backup; notification=updated; argument=NULL; data="Thu Jan 15 16:09:17 2009"; state=ok;' ,
    		'x.x.x.x.: address=2.2.2.2; frame=backup; notification=updated; argument=NULL; data="Thu Jan 15 16:09:17 2009"; state=ok;' ,
    		'x.x.x.x.: address=3.3.3.3; frame=backup; notification=updated; argument=NULL; data="Thu Jan 15 16:09:17 2009"; state=ko;' ,
    		'x.x.x.x.: address=4.4.4.4; frame=backup; notification=updated; argument=NULL; data="Thu Jan 15 16:09:17 2009"; state=ok;' ,
    	);
     
    @adresses = map { $1 if $_ =~ /address=([.\d]+)/ } grep { $_ =~ /state=ok/ } @tab ;
     
    print "@adresses" . "\n";
    print "compteur : " . scalar(@adresses) . "\n";
    Ceci devrait fonctionner si j'ai bien compris ta demande

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/11/2013, 16h54
  2. [XL-2007] Démasquage de la ligne au dessus de celles affichées
    Par draale dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/09/2011, 08h51
  3. Réponses: 4
    Dernier message: 10/02/2010, 21h07
  4. Afficher une ligne par dessus d'autres éléments ?
    Par Yogy dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 10/09/2008, 11h41
  5. Afficher le debut d'une chaine de caractère
    Par spoun95 dans le forum Réseau
    Réponses: 5
    Dernier message: 22/02/2004, 16h48

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