$input=~s#()(.+?)()#$1.Replace($2).$3#eg; sub Replace { my ($line)=@_; $line=~s#([a-zA-Z]+)#$1#g; $line=~s#(&[0-9]*)([^;]+)(;)#$1$2$3#g; return $line; }