cperl-mode is easily confused.
Yes, I've seen it confused a couple of times, as I
said, by obfuscations of one sort or another. But
it's not confused by anything that would normally be
done in code intended for real use. If an automatic
obfuscator wanted to confuse it, I think it would
have to do so deliberately, or else be really clever
in general -- much more clever than substituting
variable names and removing spaces.
for(unpack("C*",'GGGG?GGGG?O__\?WccW?{GCw?Wcc{?Wcc~?Wcc{?~cc'
.'W?')){$j=$_-63;++$a;for$p(0..7){$h[$p][$a]=$j%2;$j/=2}}for$
p(0..7){for$a(1..45){$_=($h[$p-1][$a])?'#':' ';print}print$/}