I can think of three possibilities:
- Don't distribute your application. Run it on a server that you own and control access to. Web-based (or network-based) applications are pretty much the vogue at the moment, so this is a pretty reasonable solution for many. I've worked on a lot of projects where this has been the case, and it's a pretty tried and tested method.
- Protect yourself legally, not technically. This might not be as hairy as it first sounds. If your primary customers are businesses, not individuals, you don't have to worry too much about people stealing your code, or distributing it legally. If your product is successful enough, you'll still make a lot of money even if people are breaking your license (e.g. lots of people pirate Windows, but Microsoft still seem to make a lot of money).
- Embrace Open Source and Free Software. "Free" in this context means "liberated", not "given away". It's worked for many companies (e.g. Red Hat), who mostly base their business model off charging for support.
I don't think your question actually relates to Perl specifically, and it's certainly not a technical one. It's really up to business people to get their heads around how to function in a world where the resource their dealing in (intellectual property) can't easily be locked down.
It's really
really hard to lock down / hide / obscure bits on a hard drive, especially when they're executable code not data, and the language is interpreted. Perl is pretty open about this fact, but there are other systems that "pretend" it can be done (e.g. it's really easy to de-compile Flash, some Windows apps, etc).
I think it's much better to accept our reality and try to adapt to it.