I would imagine that someone has already written one "just for the kicks" of it, but IMHO it is much more fun to write obfuscations that to read them. As a matter of fact, de-obfuscating someone's code is usually much easier that writting yours from scratch. Why would you want the fun part automized??
I assume you're not wanting this to enter any obfuscation contests. I would be astonished if an automatic obfuscator could win -- oh, wait, they call that C, right? :)
To be fair, it might be an impossible job to automate for any but the most simple scripts, but I would probably start by grabbing all variables in a package and grouping them by typeglobs. Then apply a new, random name to all members of the typeglob. Then you'd have to look at lexical and dynamic variables. You'd have to use strict (can you imagine some poor fool using variables for variable names and trying to get this scheme to work?).
Hmm... you'd also have to do that for sub names. And you've have to ensure that you're not changing anything that's imported into the script. Oy, I don't know how workable that would be. It might be one of those simple projects that falls into place, but I suspect not. I don't have the time to tackle this right now (I'm on my 16th working day in a row), but if someone else wants to ...