51 characters, though I'm sure there's a golf trick that could drive that down further.
# 345678 1 2345678 2 2345678 3 2345678 4 2345678 5
s/<!--(.+?)-->/(my$x=$1)=~s#--#-¬#g;"<!--$x-->"/seg
|
Hm... Looks like a nearly identical approach to blockhead's first approach. (Evil minds think alike.) Here's a tweak that takes it to 53 characters.
# 345678 1 2345678 2 2345678 3 2345678 4 2345678 5 23
s/<!--(.+?)-->/(my$x=$1)=~s#--#-¬#g;"<!-- $x -->"/seg
|
Changed once more (to 49), since I was a doofus and didn't read tye's instructions carefully enough. I think this one loses points for changing too much, but wins for making the comments legal both ways.
# 345678 1 2345678 2 2345678 3 2345678 4 2345678
s/<!--(.+?)-->/(my$x=$1)=~s#-#¬#g;"<!--$x-->"/seg
|