In article <[EMAIL PROTECTED]>, [EMAIL PROTECTED] says... > C.R. am Mittwoch, 25. Oktober 2006 20:38: > > Well, that kinda worked. I had to change it to work on a scalar so this > > is what I wrote: > > $s=~s/(\d+ +cm)/<bx;1>$1<ba>/g; > > > > Input string: 144 cm > > Output string: <bx;1>14<bx;1>4 cm<ba><ba> > > > > Why did I get duplicate <bx;1> and <ba> strings? > > Hm, I can't reproduce this (perl 5.8.8): > > $ perl -le 'my $s=q(144 cm); $s=~s/(\d+ +cm)/<bx;1>$1<ba>/g; print $s;' > <bx;1>144 cm<ba> > My program (perl 5.6.1 on Solars) picks the data out of an array like this: $s=$a[2];
Then I attemp to process $s like this: $s=~s/(\d+ +cm)/<bx;1>$1<ba>/g; It's not real complicated. Later I write out $s to a file. $s does not contain any line feeds or carriage returns. In the debugger I display $s just before the substitution executes, step past the line, then I display $s in the debugger where I can see too many <bx;1>s and <ba>s. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>