Hi rsriram,
Here is one way to do it. But If you have proper xml file it is always good to use XML modules.
use strict;
use warnings;
my $string = '<nl><item>asdfasdf</item><item>asdfasdf</item></nl><nl><
+item>asdfasdf</item><item>asdfasdf</item></nl>';
$string =~ s|<nl>((?:(?!</nl>).)*)</nl>|'<nl>'.&item($1).'</nl>'|egs;
print $string;
sub item
{
my ($item) = @_;
my $no =1;
$item =~ s/<item>/'<item num="'.$no++.'">'/egs;
return $item;
}
output:
-------
<nl><item num="1">asdfasdf</item><item num="2">asdfasdf</item></nl><nl
+><item num
="1">asdfasdf</item><item num="2">asdfasdf</item></nl>
or even shorter than the above
$string =~ s|<nl>((?:(?!</nl>).)*)</nl>|my $item = $1; my $no = 1; $it
+em =~ s/<item>/'<item num="'.$no++.'">'/egs;"<nl>$item</nl>"|egs;