Two easy answers (though I'm sure there are many more that are better).
- If the client wants specific routines protected, write then in C, compile that, and distribute that lib with your Perl. That gains your the "protection" that compilation affords to protect your proprietary stuff with the development benefits of Perl
- If the client wants the whole thing protected, then they should develop in Perl, port to something else (like C), compile that, and distribute that. Perl isn't meant to be distributed in a proprietary fashion.
Of course, the second point brings up an interesting discussion that's been touched on a few times ... business models. Red Hat, Caldera, and the other Linux distros ... their business model is to charge for standardization and support. They don't charge for software at all. This is directly opposed to Microsoft's business model, which is to charge for standardization and algorithms and pretend to support you.
Perl directly supports the first model and directly does not support the second. Build a sufficiently complex Perl application. Give it away. Make is something everyone wants to use. Then, charge the users for support and updates. (Sorta like a drug pusher, but nicer.) Give the user rebates for bug reports. Give them a bigger rebate for a patch. Some users will make money on you, but most will not. Some users, you will make money on, most you will not.
/me wants to be the brightest bulb in the chandelier!
Vote paco for President!