dans un script j'ai une recherche de ce type :
...
if ((/^proxyAddresses: .+/io)&&(/$dn1/)) {
push (@datas,$_);
$hasAddress=1;
}
...
la variable $dn1 provient d'un argument passé au script. je voudrais
pouvoir passer un nombre d'argument variable mais je ne vois pas comment
formuler alors la recherche :
if ((/^proxyAddresses: .+/io)&&(/$dn1|...|.../)) {
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
Paul Gaborit
À (at) Fri, 17 Nov 2006 14:34:46 +0100, kurtz le pirate écrivait (wrote):
bonjour,
dans un script j'ai une recherche de ce type : ... if ((/^proxyAddresses: .+/io)&&(/$dn1/)) { push (@datas,$_); $hasAddress=1; } ...
la variable $dn1 provient d'un argument passé au script. je voudrais pouvoir passer un nombre d'argument variable mais je ne vois pas comment formuler alors la recherche :
if ((/^proxyAddresses: .+/io)&&(/$dn1|...|.../)) {
c'est possible ?
La bonne question est "comment faire ?" car tout est toujours possible (sauf quand c'est vraiment impossible).
En supposant que les différentes expressions rationnelles à chercher sont dans le tableau @dn, je ferai comme ça :
my $regexp = join "|", @dn; if ((/^proxyAddresses: .+/io)&&(/$regexp/)) { # ... }
Je vous laisse le soin de gérer les éventuelles erreurs dûes aux inévitables conneries que tout utilisateur (moi compris) fournit un jour ou l'autre à un script.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Fri, 17 Nov 2006 14:34:46 +0100,
kurtz le pirate <kurtzlepirate@yahoo.fr> écrivait (wrote):
bonjour,
dans un script j'ai une recherche de ce type :
...
if ((/^proxyAddresses: .+/io)&&(/$dn1/)) {
push (@datas,$_);
$hasAddress=1;
}
...
la variable $dn1 provient d'un argument passé au script. je
voudrais pouvoir passer un nombre d'argument variable mais je ne
vois pas comment formuler alors la recherche :
if ((/^proxyAddresses: .+/io)&&(/$dn1|...|.../)) {
c'est possible ?
La bonne question est "comment faire ?" car tout est toujours possible
(sauf quand c'est vraiment impossible).
En supposant que les différentes expressions rationnelles à chercher
sont dans le tableau @dn, je ferai comme ça :
my $regexp = join "|", @dn;
if ((/^proxyAddresses: .+/io)&&(/$regexp/)) {
# ...
}
Je vous laisse le soin de gérer les éventuelles erreurs dûes aux
inévitables conneries que tout utilisateur (moi compris) fournit un
jour ou l'autre à un script.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Fri, 17 Nov 2006 14:34:46 +0100, kurtz le pirate écrivait (wrote):
bonjour,
dans un script j'ai une recherche de ce type : ... if ((/^proxyAddresses: .+/io)&&(/$dn1/)) { push (@datas,$_); $hasAddress=1; } ...
la variable $dn1 provient d'un argument passé au script. je voudrais pouvoir passer un nombre d'argument variable mais je ne vois pas comment formuler alors la recherche :
if ((/^proxyAddresses: .+/io)&&(/$dn1|...|.../)) {
c'est possible ?
La bonne question est "comment faire ?" car tout est toujours possible (sauf quand c'est vraiment impossible).
En supposant que les différentes expressions rationnelles à chercher sont dans le tableau @dn, je ferai comme ça :
my $regexp = join "|", @dn; if ((/^proxyAddresses: .+/io)&&(/$regexp/)) { # ... }
Je vous laisse le soin de gérer les éventuelles erreurs dûes aux inévitables conneries que tout utilisateur (moi compris) fournit un jour ou l'autre à un script.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
kurtz le pirate
In article , Paul Gaborit wrote:
À (at) Fri, 17 Nov 2006 14:34:46 +0100, kurtz le pirate écrivait (wrote):
bonjour,
dans un script j'ai une recherche de ce type : ... if ((/^proxyAddresses: .+/io)&&(/$dn1/)) { push (@datas,$_); $hasAddress=1; } ...
la variable $dn1 provient d'un argument passé au script. je voudrais pouvoir passer un nombre d'argument variable mais je ne vois pas comment formuler alors la recherche :
if ((/^proxyAddresses: .+/io)&&(/$dn1|...|.../)) {
c'est possible ?
La bonne question est "comment faire ?" car tout est toujours possible (sauf quand c'est vraiment impossible).
En supposant que les différentes expressions rationnelles à chercher sont dans le tableau @dn, je ferai comme ça :
my $regexp = join "|", @dn; if ((/^proxyAddresses: .+/io)&&(/$regexp/)) { # ... }
merci paul... c'est aussi ce que je viens de trouver :
my $domainString=""; # si pas argument if ($#ARGV==0) { $domainString=$ARGV[0]; } else { $domainString = join("|",@ARGV); } ... ... if ((/^proxyAddresses: .+/io)&&(/$domainString/)) { ... }
Je vous laisse le soin de gérer les éventuelles erreurs dûes aux inévitables conneries que tout utilisateur (moi compris) fournit un jour ou l'autre à un script.
ha ? pas encore trouvé de conneries dans tes posts :)) merci
-- klp
In article <wt9irhemam8.fsf@vaugirard.enstimac.fr>,
Paul Gaborit <Paul.Gaborit@invalid.invalid> wrote:
À (at) Fri, 17 Nov 2006 14:34:46 +0100,
kurtz le pirate <kurtzlepirate@yahoo.fr> écrivait (wrote):
bonjour,
dans un script j'ai une recherche de ce type :
...
if ((/^proxyAddresses: .+/io)&&(/$dn1/)) {
push (@datas,$_);
$hasAddress=1;
}
...
la variable $dn1 provient d'un argument passé au script. je
voudrais pouvoir passer un nombre d'argument variable mais je ne
vois pas comment formuler alors la recherche :
if ((/^proxyAddresses: .+/io)&&(/$dn1|...|.../)) {
c'est possible ?
La bonne question est "comment faire ?" car tout est toujours possible
(sauf quand c'est vraiment impossible).
En supposant que les différentes expressions rationnelles à chercher
sont dans le tableau @dn, je ferai comme ça :
my $regexp = join "|", @dn;
if ((/^proxyAddresses: .+/io)&&(/$regexp/)) {
# ...
}
merci paul... c'est aussi ce que je viens de trouver :
my $domainString=""; # si pas argument
if ($#ARGV==0) {
$domainString=$ARGV[0];
}
else {
$domainString = join("|",@ARGV);
}
...
...
if ((/^proxyAddresses: .+/io)&&(/$domainString/)) {
...
}
Je vous laisse le soin de gérer les éventuelles erreurs dûes aux
inévitables conneries que tout utilisateur (moi compris) fournit un
jour ou l'autre à un script.
ha ? pas encore trouvé de conneries dans tes posts :))
merci
À (at) Fri, 17 Nov 2006 14:34:46 +0100, kurtz le pirate écrivait (wrote):
bonjour,
dans un script j'ai une recherche de ce type : ... if ((/^proxyAddresses: .+/io)&&(/$dn1/)) { push (@datas,$_); $hasAddress=1; } ...
la variable $dn1 provient d'un argument passé au script. je voudrais pouvoir passer un nombre d'argument variable mais je ne vois pas comment formuler alors la recherche :
if ((/^proxyAddresses: .+/io)&&(/$dn1|...|.../)) {
c'est possible ?
La bonne question est "comment faire ?" car tout est toujours possible (sauf quand c'est vraiment impossible).
En supposant que les différentes expressions rationnelles à chercher sont dans le tableau @dn, je ferai comme ça :
my $regexp = join "|", @dn; if ((/^proxyAddresses: .+/io)&&(/$regexp/)) { # ... }
merci paul... c'est aussi ce que je viens de trouver :
my $domainString=""; # si pas argument if ($#ARGV==0) { $domainString=$ARGV[0]; } else { $domainString = join("|",@ARGV); } ... ... if ((/^proxyAddresses: .+/io)&&(/$domainString/)) { ... }
Je vous laisse le soin de gérer les éventuelles erreurs dûes aux inévitables conneries que tout utilisateur (moi compris) fournit un jour ou l'autre à un script.
ha ? pas encore trouvé de conneries dans tes posts :)) merci
-- klp
Paul Gaborit
À (at) Fri, 17 Nov 2006 15:51:00 +0100, kurtz le pirate écrivait (wrote):
merci paul... c'est aussi ce que je viens de trouver :
my $domainString=""; # si pas argument if ($#ARGV==0) { $domainString=$ARGV[0]; } else { $domainString = join("|",@ARGV); }
On peut se passer du test : le 'join' fonctionnera très bien même si il n'y a qu'un seul argument (un seul élément dans @ARGV).
[...]
ha ? pas encore trouvé de conneries dans tes posts :))
C'est gentil... mais heureusement faux !
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Fri, 17 Nov 2006 15:51:00 +0100,
kurtz le pirate <kurtzlepirate@yahoo.fr> écrivait (wrote):
merci paul... c'est aussi ce que je viens de trouver :
my $domainString=""; # si pas argument
if ($#ARGV==0) {
$domainString=$ARGV[0];
}
else {
$domainString = join("|",@ARGV);
}
On peut se passer du test : le 'join' fonctionnera très bien même si
il n'y a qu'un seul argument (un seul élément dans @ARGV).
[...]
ha ? pas encore trouvé de conneries dans tes posts :))
C'est gentil... mais heureusement faux !
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Fri, 17 Nov 2006 15:51:00 +0100, kurtz le pirate écrivait (wrote):
merci paul... c'est aussi ce que je viens de trouver :
my $domainString=""; # si pas argument if ($#ARGV==0) { $domainString=$ARGV[0]; } else { $domainString = join("|",@ARGV); }
On peut se passer du test : le 'join' fonctionnera très bien même si il n'y a qu'un seul argument (un seul élément dans @ARGV).
[...]
ha ? pas encore trouvé de conneries dans tes posts :))
C'est gentil... mais heureusement faux !
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
kurtz le pirate
In article , Paul Gaborit wrote:
On peut se passer du test : le 'join' fonctionnera très bien même si il n'y a qu'un seul argument (un seul élément dans @ARGV).
et même si il n'y a pas d'argument !
ha ? pas encore trouvé de conneries dans tes posts :))
C'est gentil... mais heureusement faux !
j'ai bien dit : "pas encore" :)))
autre chose, j'ai un doute sur l'interprétation de cette variable dans le test "if ((/^proxyAddresses: .+/io)&&(/$domainString/i))". si $domainString contient des points (comme dans "enstimac.fr"), il sont interprétés ou pas ?
-- klp
In article <wt9ejs2m4tx.fsf@vaugirard.enstimac.fr>,
Paul Gaborit <Paul.Gaborit@invalid.invalid> wrote:
On peut se passer du test : le 'join' fonctionnera très bien même si
il n'y a qu'un seul argument (un seul élément dans @ARGV).
et même si il n'y a pas d'argument !
ha ? pas encore trouvé de conneries dans tes posts :))
C'est gentil... mais heureusement faux !
j'ai bien dit : "pas encore" :)))
autre chose, j'ai un doute sur l'interprétation de cette variable dans
le test "if ((/^proxyAddresses: .+/io)&&(/$domainString/i))". si
$domainString contient des points (comme dans "enstimac.fr"), il sont
interprétés ou pas ?
On peut se passer du test : le 'join' fonctionnera très bien même si il n'y a qu'un seul argument (un seul élément dans @ARGV).
et même si il n'y a pas d'argument !
ha ? pas encore trouvé de conneries dans tes posts :))
C'est gentil... mais heureusement faux !
j'ai bien dit : "pas encore" :)))
autre chose, j'ai un doute sur l'interprétation de cette variable dans le test "if ((/^proxyAddresses: .+/io)&&(/$domainString/i))". si $domainString contient des points (comme dans "enstimac.fr"), il sont interprétés ou pas ?
-- klp
Paul Gaborit
À (at) Sat, 18 Nov 2006 10:51:58 +0100, kurtz le pirate écrivait (wrote):
In article , Paul Gaborit wrote:
On peut se passer du test : le 'join' fonctionnera très bien même si il n'y a qu'un seul argument (un seul élément dans @ARGV).
et même si il n'y a pas d'argument !
À ce moment là, l'expression rationnelle obtenue (la chaîne vide) sera reconnue à tous les coups !
[...]
autre chose, j'ai un doute sur l'interprétation de cette variable dans le test "if ((/^proxyAddresses: .+/io)&&(/$domainString/i))". si $domainString contient des points (comme dans "enstimac.fr"), il sont interprétés ou pas ?
Le contenu de $domainString sera interprété comme une expression rationnelle. Pour l'éviter, il faut passer par :
my $regexp = join "|", map {"Q$_E"} @ARGV;
Le Q empêche l'interprétation des méta-caractères et le E la rétablit.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Sat, 18 Nov 2006 10:51:58 +0100,
kurtz le pirate <kurtzlepirate@yahoo.fr> écrivait (wrote):
In article <wt9ejs2m4tx.fsf@vaugirard.enstimac.fr>,
Paul Gaborit <Paul.Gaborit@invalid.invalid> wrote:
On peut se passer du test : le 'join' fonctionnera très bien même si
il n'y a qu'un seul argument (un seul élément dans @ARGV).
et même si il n'y a pas d'argument !
À ce moment là, l'expression rationnelle obtenue (la chaîne vide) sera
reconnue à tous les coups !
[...]
autre chose, j'ai un doute sur l'interprétation de cette variable dans
le test "if ((/^proxyAddresses: .+/io)&&(/$domainString/i))". si
$domainString contient des points (comme dans "enstimac.fr"), il sont
interprétés ou pas ?
Le contenu de $domainString sera interprété comme une expression
rationnelle. Pour l'éviter, il faut passer par :
my $regexp = join "|", map {"Q$_E"} @ARGV;
Le Q empêche l'interprétation des méta-caractères et le E la
rétablit.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Sat, 18 Nov 2006 10:51:58 +0100, kurtz le pirate écrivait (wrote):
In article , Paul Gaborit wrote:
On peut se passer du test : le 'join' fonctionnera très bien même si il n'y a qu'un seul argument (un seul élément dans @ARGV).
et même si il n'y a pas d'argument !
À ce moment là, l'expression rationnelle obtenue (la chaîne vide) sera reconnue à tous les coups !
[...]
autre chose, j'ai un doute sur l'interprétation de cette variable dans le test "if ((/^proxyAddresses: .+/io)&&(/$domainString/i))". si $domainString contient des points (comme dans "enstimac.fr"), il sont interprétés ou pas ?
Le contenu de $domainString sera interprété comme une expression rationnelle. Pour l'éviter, il faut passer par :
my $regexp = join "|", map {"Q$_E"} @ARGV;
Le Q empêche l'interprétation des méta-caractères et le E la rétablit.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
kurtz_le_pirate
"Paul Gaborit" a écrit dans le message de news:
À (at) Sat, 18 Nov 2006 10:51:58 +0100, kurtz le pirate écrivait (wrote):
In article , Paul Gaborit wrote:
On peut se passer du test : le 'join' fonctionnera très bien même si il n'y a qu'un seul argument (un seul élément dans @ARGV).
et même si il n'y a pas d'argument !
À ce moment là, l'expression rationnelle obtenue (la chaîne vide) sera reconnue à tous les coups !
c'est justement le but :)
[...]
autre chose, j'ai un doute sur l'interprétation de cette variable dans le test "if ((/^proxyAddresses: .+/io)&&(/$domainString/i))". si $domainString contient des points (comme dans "enstimac.fr"), il sont interprétés ou pas ?
Le contenu de $domainString sera interprété comme une expression rationnelle. Pour l'éviter, il faut passer par :
my $regexp = join "|", map {"Q$_E"} @ARGV;
Le Q empêche l'interprétation des méta-caractères et le E la rétablit.
heuuu... ben moi j'ai fais une bête : $domainString =~ s/././g;
merci
-- klp
"Paul Gaborit" <Paul.Gaborit@invalid.invalid> a écrit dans le message
de news: wt9ac2mms0w.fsf@vaugirard.enstimac.fr...
À (at) Sat, 18 Nov 2006 10:51:58 +0100,
kurtz le pirate <kurtzlepirate@yahoo.fr> écrivait (wrote):
In article <wt9ejs2m4tx.fsf@vaugirard.enstimac.fr>,
Paul Gaborit <Paul.Gaborit@invalid.invalid> wrote:
On peut se passer du test : le 'join' fonctionnera très bien même
si
il n'y a qu'un seul argument (un seul élément dans @ARGV).
et même si il n'y a pas d'argument !
À ce moment là, l'expression rationnelle obtenue (la chaîne vide)
sera
reconnue à tous les coups !
c'est justement le but :)
[...]
autre chose, j'ai un doute sur l'interprétation de cette variable
dans
le test "if ((/^proxyAddresses: .+/io)&&(/$domainString/i))". si
$domainString contient des points (comme dans "enstimac.fr"), il
sont
interprétés ou pas ?
Le contenu de $domainString sera interprété comme une expression
rationnelle. Pour l'éviter, il faut passer par :
my $regexp = join "|", map {"Q$_E"} @ARGV;
Le Q empêche l'interprétation des méta-caractères et le E la
rétablit.
heuuu... ben moi j'ai fais une bête : $domainString =~ s/./\./g;
À (at) Sat, 18 Nov 2006 10:51:58 +0100, kurtz le pirate écrivait (wrote):
In article , Paul Gaborit wrote:
On peut se passer du test : le 'join' fonctionnera très bien même si il n'y a qu'un seul argument (un seul élément dans @ARGV).
et même si il n'y a pas d'argument !
À ce moment là, l'expression rationnelle obtenue (la chaîne vide) sera reconnue à tous les coups !
c'est justement le but :)
[...]
autre chose, j'ai un doute sur l'interprétation de cette variable dans le test "if ((/^proxyAddresses: .+/io)&&(/$domainString/i))". si $domainString contient des points (comme dans "enstimac.fr"), il sont interprétés ou pas ?
Le contenu de $domainString sera interprété comme une expression rationnelle. Pour l'éviter, il faut passer par :
my $regexp = join "|", map {"Q$_E"} @ARGV;
Le Q empêche l'interprétation des méta-caractères et le E la rétablit.
heuuu... ben moi j'ai fais une bête : $domainString =~ s/././g;
merci
-- klp
Paul Gaborit
À (at) Mon, 20 Nov 2006 17:24:26 +0100, "kurtz_le_pirate" écrivait (wrote):
"Paul Gaborit" a écrit dans le message de news:
Le contenu de $domainString sera interprété comme une expression rationnelle. Pour l'éviter, il faut passer par :
my $regexp = join "|", map {"Q$_E"} @ARGV;
Le Q empêche l'interprétation des méta-caractères et le E la rétablit.
heuuu... ben moi j'ai fais une bête : $domainString =~ s/././g;
C'est loin d'être suffisant ! Les regexp utilisent de nombreux méta-caractères en plus du point (.). C'est pour cela qu'il existe Q et E (ou la fonction 'quotemeta').
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 20 Nov 2006 17:24:26 +0100,
"kurtz_le_pirate" <kurtzlepirate@yahoo.fr> écrivait (wrote):
"Paul Gaborit" <Paul.Gaborit@invalid.invalid> a écrit dans le message
de news: wt9ac2mms0w.fsf@vaugirard.enstimac.fr...
Le contenu de $domainString sera interprété comme une expression
rationnelle. Pour l'éviter, il faut passer par :
my $regexp = join "|", map {"Q$_E"} @ARGV;
Le Q empêche l'interprétation des méta-caractères et le E la
rétablit.
heuuu... ben moi j'ai fais une bête : $domainString =~ s/./\./g;
C'est loin d'être suffisant ! Les regexp utilisent de nombreux
méta-caractères en plus du point (.). C'est pour cela qu'il existe Q
et E (ou la fonction 'quotemeta').
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 20 Nov 2006 17:24:26 +0100, "kurtz_le_pirate" écrivait (wrote):
"Paul Gaborit" a écrit dans le message de news:
Le contenu de $domainString sera interprété comme une expression rationnelle. Pour l'éviter, il faut passer par :
my $regexp = join "|", map {"Q$_E"} @ARGV;
Le Q empêche l'interprétation des méta-caractères et le E la rétablit.
heuuu... ben moi j'ai fais une bête : $domainString =~ s/././g;
C'est loin d'être suffisant ! Les regexp utilisent de nombreux méta-caractères en plus du point (.). C'est pour cela qu'il existe Q et E (ou la fonction 'quotemeta').
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>