What about Bleach from CPAN? It might offer you a little protection. It converts your code into whitespace which actually contains the encoded source. If you then keep the use line in, the module will decode the source and run it when the program is run. I didn't think my program would run after I Bleached it, until it ran, correctly... but when I viewed it in the editor it was all white...
...of course someone intent at getting at the source could still modify Bleach to allow them to view it, but you can protect your source from that with a restrictive license (as others have suggested).