in reply to Execute But Not Read

Perl is an interpereted, scripting language. This means the source is read at runtime. Though you could change the permissions according to what you describe, it would be useless as the commands that a script contains need to be read by the interpereter in order to run.

Theoretically, one can compile perl into a binary modules that are then (usually) called by other scripts or c programs. The code in the module is no longer human readable (what they call byte-compiled), and that may be good enough for what you're after.

Honestly though, I, for one, have never done this. There are references on this site for it though. Checkout this post.