je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui
contient donc des retours à la ligne. si je veux faire des remplacements
sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des
'\n' dans l'expression ?
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
j'ai des comportements bizzares.
-- klp
des r non?
On 25 avr, 19:58, kurtz le pirate <kurtzlepir...@yahoo.fr> wrote:
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui
contient donc des retours à la ligne. si je veux faire des remplacements
sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des
'n' dans l'expression ?
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
j'ai des comportements bizzares.
-- klp
des r non?
Dam
On 25 avr, 19:58, kurtz le pirate wrote:
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
j'ai des comportements bizzares.
-- klp
r ?
On 25 avr, 19:58, kurtz le pirate <kurtzlepir...@yahoo.fr> wrote:
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui
contient donc des retours à la ligne. si je veux faire des remplacements
sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des
'n' dans l'expression ?
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
j'ai des comportements bizzares.
-- klp
r ?
Paul Gaborit
À (at) Wed, 25 Apr 2007 19:58:51 +0200, kurtz le pirate écrivait (wrote):
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
Le modificateur /m agit sur la signification de "^" et de "$". Normalement c'est début de chaîne et fin de chaîne. Avec /m, c'est début et fin de ligne (dans la chaîne éventuellement multi-lignes).
Le modificateur /s agit sur la signification de ".". Normalement, le "." reconnaît n'importe quel caractère sauf un passage à la ligne. Avec /s, le "." reconnaît aussi le passage à la ligne.
Ensuite, si vous souhaitez reconnaître explicitement un passage à la ligne, vous pouvez utiliser "n".
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Wed, 25 Apr 2007 19:58:51 +0200,
kurtz le pirate <kurtzlepirate@yahoo.fr> écrivait (wrote):
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui
contient donc des retours à la ligne. si je veux faire des remplacements
sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des
'n' dans l'expression ?
Le modificateur /m agit sur la signification de "^" et de
"$". Normalement c'est début de chaîne et fin de chaîne. Avec /m,
c'est début et fin de ligne (dans la chaîne éventuellement
multi-lignes).
Le modificateur /s agit sur la signification de ".". Normalement, le
"." reconnaît n'importe quel caractère sauf un passage à la
ligne. Avec /s, le "." reconnaît aussi le passage à la ligne.
Ensuite, si vous souhaitez reconnaître explicitement un passage à la
ligne, vous pouvez utiliser "n".
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Wed, 25 Apr 2007 19:58:51 +0200, kurtz le pirate écrivait (wrote):
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
Le modificateur /m agit sur la signification de "^" et de "$". Normalement c'est début de chaîne et fin de chaîne. Avec /m, c'est début et fin de ligne (dans la chaîne éventuellement multi-lignes).
Le modificateur /s agit sur la signification de ".". Normalement, le "." reconnaît n'importe quel caractère sauf un passage à la ligne. Avec /s, le "." reconnaît aussi le passage à la ligne.
Ensuite, si vous souhaitez reconnaître explicitement un passage à la ligne, vous pouvez utiliser "n".
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Vincent Lefevre
Dans l'article , Dam écrit:
On 25 avr, 19:58, kurtz le pirate wrote:
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
Que tu utilises le modifieur m ou non, tu dois mettre n (ou quelque chose qui le remplace, comme s je suppose) dans l'expression pour un pattern sur plusieurs lignes. En revanche, si tu utilises le modifieur s, tu peux t'en dispenser si tu utilises "." (man perlre).
Dans l'article <1177574194.114712.207430@t38g2000prd.googlegroups.com>,
Dam <damien.guerin2@wanadoo.fr> écrit:
On 25 avr, 19:58, kurtz le pirate <kurtzlepir...@yahoo.fr> wrote:
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui
contient donc des retours à la ligne. si je veux faire des remplacements
sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des
'n' dans l'expression ?
Que tu utilises le modifieur m ou non, tu dois mettre n (ou quelque
chose qui le remplace, comme s je suppose) dans l'expression pour un
pattern sur plusieurs lignes. En revanche, si tu utilises le modifieur
s, tu peux t'en dispenser si tu utilises "." (man perlre).
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
Que tu utilises le modifieur m ou non, tu dois mettre n (ou quelque chose qui le remplace, comme s je suppose) dans l'expression pour un pattern sur plusieurs lignes. En revanche, si tu utilises le modifieur s, tu peux t'en dispenser si tu utilises "." (man perlre).
À (at) 26 Apr 2007 11:41:31 GMT, Nicolas George <nicolas$ écrivait (wrote):
Paul Gaborit wrote in message :
"$". Normalement c'est début de chaîne et fin de chaîne.
Pour $, c'est fin de chaîne ou juste avant un n à la fin de la chaîne. C'est traître, parfois.
C'est vrai qu'il faut le préciser. C'est traitre quand on ne le sait pas. Mais c'est très pratique pour éviter l'emploi de 'chomp'.
-- 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) Wed, 25 Apr 2007 19:58:51 +0200, kurtz le pirate écrivait (wrote):
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
Le modificateur /m agit sur la signification de "^" et de "$". Normalement c'est début de chaîne et fin de chaîne. Avec /m, c'est début et fin de ligne (dans la chaîne éventuellement multi-lignes).
Le modificateur /s agit sur la signification de ".". Normalement, le "." reconnaît n'importe quel caractère sauf un passage à la ligne. Avec /s, le "." reconnaît aussi le passage à la ligne.
Ensuite, si vous souhaitez reconnaître explicitement un passage à la ligne, vous pouvez utiliser "n".
hum... hum... toujours pas clair pour moi :(( en fait je n'ai pas besoin de reconnaitre explicitement le retour à la ligne. pour faire simple, j'ai des fichiers du genre : ... [section1] adresseIp=1.2.3.4 ... [section14] adresseIp=1.2.3.4 ... ... ... [section5] adresseIp.100.52.41 ... ...
je veux changer : [section14]nadresseIp=1.2.3.4n par : [section14]nadresseIp.13.14.15ntoto=5n
"Paul Gaborit" <Paul.Gaborit@invalid.invalid> a écrit dans le message
de news: wt9bqhb9xy5.fsf@vaugirard.enstimac.fr...
À (at) Wed, 25 Apr 2007 19:58:51 +0200,
kurtz le pirate <kurtzlepirate@yahoo.fr> écrivait (wrote):
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire
qui
contient donc des retours à la ligne. si je veux faire des
remplacements
sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre
des
'n' dans l'expression ?
Le modificateur /m agit sur la signification de "^" et de
"$". Normalement c'est début de chaîne et fin de chaîne. Avec /m,
c'est début et fin de ligne (dans la chaîne éventuellement
multi-lignes).
Le modificateur /s agit sur la signification de ".". Normalement, le
"." reconnaît n'importe quel caractère sauf un passage à la
ligne. Avec /s, le "." reconnaît aussi le passage à la ligne.
Ensuite, si vous souhaitez reconnaître explicitement un passage à la
ligne, vous pouvez utiliser "n".
hum... hum... toujours pas clair pour moi :((
en fait je n'ai pas besoin de reconnaitre explicitement le retour à la
ligne.
pour faire simple, j'ai des fichiers du genre :
...
[section1]
adresseIp=1.2.3.4
...
[section14]
adresseIp=1.2.3.4
...
...
...
[section5]
adresseIp.100.52.41
...
...
je veux changer : [section14]nadresseIp=1.2.3.4n
par : [section14]nadresseIp.13.14.15ntoto=5n
À (at) Wed, 25 Apr 2007 19:58:51 +0200, kurtz le pirate écrivait (wrote):
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
Le modificateur /m agit sur la signification de "^" et de "$". Normalement c'est début de chaîne et fin de chaîne. Avec /m, c'est début et fin de ligne (dans la chaîne éventuellement multi-lignes).
Le modificateur /s agit sur la signification de ".". Normalement, le "." reconnaît n'importe quel caractère sauf un passage à la ligne. Avec /s, le "." reconnaît aussi le passage à la ligne.
Ensuite, si vous souhaitez reconnaître explicitement un passage à la ligne, vous pouvez utiliser "n".
hum... hum... toujours pas clair pour moi :(( en fait je n'ai pas besoin de reconnaitre explicitement le retour à la ligne. pour faire simple, j'ai des fichiers du genre : ... [section1] adresseIp=1.2.3.4 ... [section14] adresseIp=1.2.3.4 ... ... ... [section5] adresseIp.100.52.41 ... ...
je veux changer : [section14]nadresseIp=1.2.3.4n par : [section14]nadresseIp.13.14.15ntoto=5n
Sinon que les crochets de la partie "pattern" doivent être échappés ( [section14] ), ça marche chez moi (TM). Le modificateur `m' est d'ailleurs superflu pour ladite substitution.
Sinon que les crochets de la partie "pattern" doivent être échappés
( [section14] ), ça marche chez moi (TM). Le modificateur `m' est
d'ailleurs superflu pour ladite substitution.
Sinon que les crochets de la partie "pattern" doivent être échappés ( [section14] ), ça marche chez moi (TM). Le modificateur `m' est d'ailleurs superflu pour ladite substitution.
kurtz le pirate
In article , Jean-Baptiste Mazon wrote:
"kurtz_le_pirate" writes:
je veux changer : [section14]nadresseIp=1.2.3.4n par : [section14]nadresseIp.13.14.15ntoto=5n
Sinon que les crochets de la partie "pattern" doivent être échappés ( [section14] ), ça marche chez moi (TM). Le modificateur `m' est d'ailleurs superflu pour ladite substitution.
oui, j'ai tappé un peu vite. il faut le [, mais pas le ].
sinon, ça prouve bien que je n'ai pas encore compris le /m :(
merci -- klp
In article <fmsr6q7qolh.fsf@somewhere.net>,
Jean-Baptiste Mazon <jmazon@invalid.invalid> wrote:
Sinon que les crochets de la partie "pattern" doivent être échappés
( [section14] ), ça marche chez moi (TM). Le modificateur `m' est
d'ailleurs superflu pour ladite substitution.
oui, j'ai tappé un peu vite. il faut le [, mais pas le ].
sinon, ça prouve bien que je n'ai pas encore compris le /m :(
Sinon que les crochets de la partie "pattern" doivent être échappés ( [section14] ), ça marche chez moi (TM). Le modificateur `m' est d'ailleurs superflu pour ladite substitution.
oui, j'ai tappé un peu vite. il faut le [, mais pas le ].
sinon, ça prouve bien que je n'ai pas encore compris le /m :(
merci -- klp
Klaus
On Apr 25, 7:58 pm, kurtz le pirate wrote:
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
ça dépend, voir http://perl.enstimac.fr/DocFr/perlre.html
j'ai des comportements bizzares.
Merci de donner un exemple programme perl (court mais complet avec un fichier DATA et la commande s/.../.../m) qui montre le comportement, par exemple:
use strict; use warnings; $/ = undef; my $multi_ligne = <DATA>; print "Avant : ", unpack('H*', $multi_ligne), "n n"; print "Opération: s/^B/Z/mnn"; $multi_ligne =~ s/^B/Z/m; print "J'espère le résultat : 410a5a0a430an"; print "Voici le résultat obtenu: ", unpack('H*', $multi_ligne), "n"; __DATA__ A B C
-- Klaus
On Apr 25, 7:58 pm, kurtz le pirate <kurtzlepir...@yahoo.fr> wrote:
bonsoir,
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui
contient donc des retours à la ligne. si je veux faire des remplacements
sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des
'n' dans l'expression ?
ça dépend, voir http://perl.enstimac.fr/DocFr/perlre.html
j'ai des comportements bizzares.
Merci de donner un exemple programme perl (court mais complet avec un
fichier DATA et la commande s/.../.../m) qui montre le comportement,
par exemple:
use strict;
use warnings;
$/ = undef;
my $multi_ligne = <DATA>;
print "Avant : ", unpack('H*', $multi_ligne), "n
n";
print "Opération: s/^B/Z/mnn";
$multi_ligne =~ s/^B/Z/m;
print "J'espère le résultat : 410a5a0a430an";
print "Voici le résultat obtenu: ", unpack('H*', $multi_ligne), "n";
__DATA__
A
B
C
je lis tout un fichier d'un seul coup (undef $/) dans un scalaire qui contient donc des retours à la ligne. si je veux faire des remplacements sur plusieurs lignes (donc utiliser s/.../.../m), dois-je mettre des 'n' dans l'expression ?
ça dépend, voir http://perl.enstimac.fr/DocFr/perlre.html
j'ai des comportements bizzares.
Merci de donner un exemple programme perl (court mais complet avec un fichier DATA et la commande s/.../.../m) qui montre le comportement, par exemple:
use strict; use warnings; $/ = undef; my $multi_ligne = <DATA>; print "Avant : ", unpack('H*', $multi_ligne), "n n"; print "Opération: s/^B/Z/mnn"; $multi_ligne =~ s/^B/Z/m; print "J'espère le résultat : 410a5a0a430an"; print "Voici le résultat obtenu: ", unpack('H*', $multi_ligne), "n"; __DATA__ A B C