No intente confundir su Perl. Estás perdiendo el tiempo allí. Muestro a mucha gente cómo romper ese tipo de cosas en Mastering Perl solo para que no intenten hacerlo.
¿Ha considerado implementar las cosas delicadas en C y enviar un binario precompilado con una interfaz Perl? Es relativamente fácil de hacer y tiene el mismo efecto sin depender de un truco inteligente. La persona hábil y determinada aún puede aplicar ingeniería inversa, pero eso es cierto para cualquier solución. Tienes que compilar la biblioteca para cada plataforma, pero si esto es lo suficientemente importante como para protegerlo, es lo suficientemente importante como para cobrar lo suficiente a la gente para usarlo.
Como alternativa, coloque las cosas sensibles detrás de un servicio web para que nunca obtengan el código.
Una táctica inteligente que he visto implica un archivo que se adapta a cada cliente, ya sea a través del formato o el contenido. Esto sirve como algo así como una marca de agua de bajo grado que usa un código banal, comentarios o documentos. Encuentra esa curiosa secuencia de texto y sabes la fuente de la fuga.
La respuesta comercial es no dar el programa a personas en las que no confías, o hacer las penalidades lo suficientemente rígidas para desalentarlo.
1) Es Perl, no PERL. 2) Buena suerte. Esto es imposible. Un lenguaje tan intrincado como Perl tiene tanto potencial de ofuscación, y muchos más guionistas que conocerán cada rincón oscuro de este potencial de ofuscación. Su mejor opción es escribirlo en código máquina y distribuir el binario con el enlace XS, pero al final, nada de lo que haga ralentizará realmente a nadie que quiera comprender su código. –
Tenga en cuenta que sea lo que sea que elija, un enfoque como este: http://search.cpan.org/~jjore/B-Deobfuscate-0.20/lib/B/Deobfuscate.pod Podría muy bien tener éxito en deshacer tu trabajo. –
@Chris Lutz: los kiddies de scripts son, por definición, no buenos programadores. – user359996