[PERL] expression reg again ...
Fermé
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
-
26 août 2010 à 16:09
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 26 août 2010 à 19:24
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 26 août 2010 à 19:24
A voir également:
- [PERL] expression reg again ...
- Reg cleaner - Télécharger - Nettoyage
- Expression de recherche - Guide
- Tu es un amour expression ✓ - Forum Loisirs / Divertissements
- Denon perl pro test - Accueil - Audio
- Expression encoder - Télécharger - Divers Utilitaires
4 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 août 2010 à 16:15
26 août 2010 à 16:15
Salut,
Affiche ton if complet.
Affiche ton if complet.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 26/08/2010 à 16:18
Modifié par lami20j le 26/08/2010 à 16:18
Re,
Sinon j'aurais écrit comme ça
GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
106485010510997108
Sinon j'aurais écrit comme ça
if( $status =~ m/(valeur1|valeur2|valeur3)/i){ if ($to ne ""){ ..... } }else{ ... }--
GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
106485010510997108
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
26 août 2010 à 16:17
26 août 2010 à 16:17
ben il est complet :
if ($to && $to ne "" && $status =~ m/(valeur1|valeur2|valeur3)/i ){ delete($tableau_to{$id}); }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 août 2010 à 16:22
26 août 2010 à 16:22
Re,
Maintenant, oui il est complet.
$to && $to ne "" peut être écris tout simplement $to ne ""
Teste et affiche ça.
Maintenant, oui il est complet.
$to && $to ne "" peut être écris tout simplement $to ne ""
Teste et affiche ça.
if ($to ne "" && $status =~ m/valeur1|valeur2|valeur3/i ){ print "$to - $status\n"; }
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
26 août 2010 à 16:28
26 août 2010 à 16:28
alors là je dois dire que je ne pense pas ... si je test uniquement avec $to ne "" j'ai :
Use of uninitialized value in string ne
si j'ajoute un test sur $to ça passe ...
Use of uninitialized value in string ne
si j'ajoute un test sur $to ça passe ...
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
26 août 2010 à 16:24
26 août 2010 à 16:24
j'ai fais l'inverse :
et j'ai la même erreur sur la ligne :
Use of uninitialized value in pattern match (m//)
j'ajoute que c'est une erreur qui se reproduit à plusieurs endroit de mon code comme par exemple :
PS :j'aurais pu utiliser split pour celle là :)
if ($to && $to ne "") { if ($status =~ m/(valeur1|valeur2|valeur3)/i ){ delete($tableau_to{$id}); } }
et j'ai la même erreur sur la ligne :
if ($status =~ m/(expired|bounced|sent)/i ){
Use of uninitialized value in pattern match (m//)
j'ajoute que c'est une erreur qui se reproduit à plusieurs endroit de mon code comme par exemple :
($info1,$info2,$info3)=$tmp_from=~/([^_|\n]*)?_?([^_|\n]*)?_?([^_|\n]*)?$/o;
PS :j'aurais pu utiliser split pour celle là :)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 26/08/2010 à 16:26
Modifié par lami20j le 26/08/2010 à 16:26
Re,
Mais $id c'est quoi?
Test ton if avec des print puisque ce n'est pas forcement que l'erreur vienne de la condition if
Test ça
Mais $id c'est quoi?
Test ton if avec des print puisque ce n'est pas forcement que l'erreur vienne de la condition if
Test ça
if ($to ne "" && $status =~ m/valeur1|valeur2|valeur3/i ){ print "$to - $status - $id\n"; }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 août 2010 à 16:26
26 août 2010 à 16:26
Re,
Tu n'est pas dans une boucle while par hasard?
Tu n'est pas dans une boucle while par hasard?
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
Modifié par sbouli le 26/08/2010 à 16:31
Modifié par sbouli le 26/08/2010 à 16:31
eu si ... je lis un fichier ligne à ligne ....
pour répondre à ta question sur le $id il vient de plus haut (plusieurs endroit possible) et juste avant le if en question j'ai cette ligne :
pour répondre à ta question sur le $id il vient de plus haut (plusieurs endroit possible) et juste avant le if en question j'ai cette ligne :
$to = $tableau_to{$id};
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
26 août 2010 à 16:31
26 août 2010 à 16:31
Re,
Ben, affiche ta boucle entière pour voir.
Sinon pour ne et "" regarde un test
Ben, affiche ta boucle entière pour voir.
Sinon pour ne et "" regarde un test
$ perl -e 'print $n if $n ne ""' $ perl -e '$n="a"; print $n if $n ne ""' a
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
26 août 2010 à 16:34
26 août 2010 à 16:34
la boucle entière ça représente 90% du fichier et comme je dois "nettoyer" toutes informations personnelles aux internautes ... ça me prend un temps certains ...
si tu le souhaites, je te mail le script, un fichier de log de test pour que tu vois ....
Stéphane
si tu le souhaites, je te mail le script, un fichier de log de test pour que tu vois ....
Stéphane