Oh, and the NoVarsInStrings way to do these is:
$DN="CN="+$cn+",OU=MyCity,DC=MyDomain,DC=com"
$DN2="CN="+$cn8+",OU=MyCity,DC=MyDomain,DC=com"

It is not a matter of clarity, it is simply laziness. In your version of the above example, it is not clear that on the second line, the varname is $cn8 and not $cn.
_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.