I'm experimenting with making single file perl distributions $ ls -l perl -rwxr-xr-x 1 nick nick 21577960 Mar 4 23:03 perl $ ldd perl perl: libz.so.3 => /lib/libz.so.3 (0x286e6000) libm.so.4 => /lib/libm.so.4 (0x286f7000) libcrypt.so.3 => /lib/libcrypt.so.3 (0x2870d000) libutil.so.5 => /lib/libutil.so.5 (0x28726000) libc.so.6 => /lib/libc.so.6 (0x28733000) $ file perl perl: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), not stripped Note, this is a single file with all libraries staticly linked in, with a zip file of all of the libraries appended. It doesn't create or need any temporary files. If you have x86 FreeBSD and want to play you can get it here: http://www.ccl4.org/~nick/P/perl I had to tweak CPAN.pm slightly: --- CPAN.pm~ Sun Mar 4 22:25:23 2007 +++ CPAN.pm Sun Mar 4 23:02:24 2007 @@ -34,7 +34,7 @@ BEGIN { if (File::Spec->can("rel2abs")) { for my $inc (@INC) { - $inc = File::Spec->rel2abs($inc); + $inc = File::Spec->rel2abs($inc) unless ref $inc; } } } Unfortunately even with that it won't build modules, because ExtUtils::MakeMaker writes Makefiles that have a dependency on Config.pm: make: don't know how to make /export/home/nwc10/lib/perl5/5.9.5/i386-freebsd/Config.pm. Stop NWCLARK/Acme-Meta-0.02.tar.gz /usr/bin/make -- NOT OK I'm not sure what to do about that. But yes, it does run the CPAN shell. Enjoy. (hence the question about xsinit, as ex::lib::zip needs to fiddle with @INC before perl_run) Nicholas ClarkThread Next