Even, say, Java bytecode can be deparsed. OK, there are code obfuscators, which do various clever tricks (for example producing valid bytecode which works in the JVM but which could never be produced from valid Java code) and garbling variable/sub/class names to prevent them from being understood. You can easily obfuscate (Acme::Bleach anyone?) Perl code, and garble the names for good measure. I guess the fact that Perl 6 will compile to bytecode will make other forms of source protection easier to implement than for Perl 5 though.