Hallo Volk!
Hallo Herr und Gebieter ;-)
[...]
»»Zusammenfassung:
»»ich gebe & ein. Dann mache
»»ich meine Subst. (=~s/&/&_amp/g;)
»»und raus kommt
»»&_amp;amp (und ich habe doch nur ein & eingegeben.)
Das schaut so aus, als wenn Du versuchst in einem bestehenden HTML-Text (*g*) alle vorkommenden Sonderzeichen in deren HTML-Entities umzuwandel. Dabei wird natürlich auch das & von & in & umgewandelt ;-)
Was Du brauchst ist also eine: "zero-width negative look-ahead assertion".
$text =~ s/&(?!amp;)/&/g;
^............hier ist der Zauberstab ;-): findet & nur, wenn kein amp; folgt.
Gruß AlexBausW