$a = "<no> 3232 </no> " $a =~ s/<no>(.*)</no>/000/gi ;
I am expecting that $a becomes "<no> 000 </no> ", but it is not working.
$a
"<no> 000 </no> "
You need look-around assertions.
$a =~ s|(?<=<no> ).*(?= </no>)|000|gi; # $a is now "<no> 000 </no> "
Have you considered reading a Perl book or two? You are not learning effectively if you have to come to Stack Overflow to ask that sort of questions that can be easily answered by reading the fine documentation.
2.1m questions
2.1m answers
60 comments
57.0k users