perl2exe can put Perl itself in one DLL, and any DLLs used by the modules you load in their own DLLs.
In one recent example, I could compile the entire product in one 2.8MB file, or I could break it into a 940KB main file, a 680KB Perl interpreter DLL, and 19 other DLL files (most of which were Tk related). Other thougts in no particular order: I've been using perl2exe for about 2 years now and have never found a problem that I could not work around. Some programming issues are: 1) you have to use USE statements, not REQUIRE statements, since only modules specified by USE statements are compiled in. 2) sometimes when a module you USE in turn USES a bunch of other modules, perl2exe can't find them to incorporate unless you explicitly also include their USE statements in your calling program. 3) A minor issue with environment variables: If your program is compiled using perl2exe, $^X contains the path to .EXE; e.g., C:\whatever\progname.exe If not compiled, $^X contains the path to perl.exe instead. So you should write a couple line routine to determine the script dir so your program will work without change as either a .pl or .exe. The above and similar stuff is explained pretty clearly in a one pager on their site. A "hello world" program is about 680KB with Perl 5.6 (it was more like 550KB with earlier versions of Perl). There are versions for Linux and Unix too, though I've only given the Linux version a 10 minute test (it seemed to work). I asked, and was told there was no plan for a Pocket PC version, though I'd love to see one so I could do some wireless p2p experiments. Hope this helps. -- Mark -----Original Message----- From: James Eshelman [mailto:[EMAIL PROTECTED]] Sent: Wednesday, February 20, 2002 2:42 PM To: Mark Aisenberg; mongers of perl Subject: Re: [Boston.pm] obfuscation/compiler/summary Mark, How about the opposite situation? If you have to distribute several independent exe's do they each have to roll-in the main perl binary? That could bulk up a distribution quite a bit. It would be nice if you could put the major part of the binary into a dll and a start-up stub of some sort into each exe. Perhaps the dynamic linking would slow the perl interpreter down enough to make this undesireable. Jim ----- Original Message ----- From: "Mark Aisenberg" <[EMAIL PROTECTED]> To: "mongers of perl" <[EMAIL PROTECTED]> Sent: Wednesday, February 20, 2002 1:46 PM Subject: RE: [Boston.pm] obfuscation/compiler/summary With perl2exe (my knowledge of the other product is old), you can compile your EXEs with -small or -tiny switches to have it put Perl libraries in DLLS which can be shared by several apps. This gets your EXEs down to a few tens of KB; of course that doesn't help with memory footprint or performance or the size of your initial distribution, but it can make updating your EXEs smaller/easier since the standard Perl libraries are unlikely to change often. There is also a -gui switch which makes Perl/Tk apps run without the "DOS box" console window. Can anyone offer some info on the amount of "obfuscation" that these EXE packagers provide? -- Mark Aisenberg ([EMAIL PROTECTED]) -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of James Eshelman Sent: Wednesday, February 20, 2002 11:24 AM To: Greg London; mongers of perl Subject: Re: [Boston.pm] obfuscation/compiler/summary That's cool, Greg. If you need to ship several executeables can they share one perl binary somehow (some sort of dll-like scheme) or do they all roll in their own? ----- Original Message ----- From: "Greg London" <[EMAIL PROTECTED]> To: "mongers of perl" <[EMAIL PROTECTED]> Sent: Wednesday, February 20, 2002 9:53 AM Subject: [Boston.pm] obfuscation/compiler/summary I purchased and downloaded ActiveState's Perl Dev Kit 4.0 last night. It compiled a perl script with a bunch of Tk widgets without me having to look at a single FAQ, readme, or -help menu. I was quite impressed with how easy-to-use ActiveState made their tools. as it turns out, this solves several problems in one fell swoop. First, I can sell a stand-alone executable, rather than have to worry about customers trying to install perl, and then get my script to run. and my customers will be basic computer users. Second, it gives me a level of obfuscation for the program that would be hard for me to replicate on my own. It's impossible to write uncrackable software that is sold to the public, but this is more like a lock on the front door, knowing that professional burgulars will simply smash a window. and the only reason I'm taking time to write this program is because I hope to get some money back from selling it. apparently, there are no open source solutions for this application, and one has been in need for several years. Anyway, that's the summary: ActiveState PDK 4.0 appears to work very nicely. Now I just have to finish the application. Greg
