wilsond has asked for the wisdom of the Perl Monks concerning the following question:

Edit: I'm just going to ditch the idea of hiding anything. If some guy wants to beat me to the market, I guess that's what I'll have to live with. A lot of my code is already on the CPAN, so it would have only hidden the glue anyway. And at least I won't feel like a slimeball.

Edit: After using PAR for a bit over a week, I'm happy to have stopped using PDK. PAR is fantastic. PDK users should consider taking a look at it.


I've been using ActiveState's PDK for years now. It's "great". "Great" meaning it's only kinda okay and really annoying. The last straw came flying at me when I wanted to upgrade to the newest PDK, version 8. I had previously been a subscriber to their subscription PDK, but I had let it expire. Now they will not allow me to renew it (they want full price). Last year I could afford it. This year, not so much.

Unfortunately, I have to build a binary that is reasonably protected from intrusion. In the future, I intend to GPL the code that I'm writing, but I'm not ready to do that immediately. I'd like to have a chance at marketing it before someone else takes it and beats me to it. I hate that logic very much. I know about licensing and all that, but I don't have any legal team to speak of and can't honestly use that to protect my code for the moment. I'm sure to hear flack about this particular part of my post. I already know how dumb it is, so please spare me on this if at all possible. Also, the code is Perl and won't be C or anything else, so please don't suggest rewriting it in some other language.

Is there anything that is not an ActiveState product that can do a reasonable job? I'm already using a large amount of obfuscation techniques since the PDK is definitely not "secure" with regard to access to the packaged code.

I guess I should ask more clearly: does something like PAR::Packer (with PAR::Filter::Crypto) package the code in a "reasonable" way or is it trivial to get at the code?

Yes, I hate myself for asking. Thanks for any help you can give me.


I'm a Linux user. You wouldn't know it since I mostly ask Windows questions. Whee.
If you want to do evil, science provides the most powerful weapons to do evil; but equally, if you want to do good, science puts into your hands the most powerful tools to do so.
- Richard Dawkins
  • Comment on Alternative to PDK (ActiveState "compiler" tools)

Replies are listed 'Best First'.
Re: Alternative to PDK (ActiveState "compiler" tools)
by wilsond (Scribe) on May 02, 2009 at 16:27 UTC

    Also, on a side question: how does PAR::Filter::Crypto allow the code to run but prevent someone from accessing the code? It seems a bit impossible on the surface. I tested it and the code seems to run just fine. There seems to be an initial execution slowdown (no doubt because of the decryption I assume), but the code itself runs quite well. Is PAR::Filter::Crypto even worth using or does it actually help with the goal of preventing access to the code? This side question is mostly out of curiosity. If anyone has experience using it, I'd love to hear their thoughts on it.


    I'm a Linux user. You wouldn't know it since I mostly ask Windows questions. Whee.
    If you want to do evil, science provides the most powerful weapons to do evil; but equally, if you want to do good, science puts into your hands the most powerful tools to do so.
    - Richard Dawkins
      It stops idiots, same as PDK. Non-idiots can reverse it with very little work.