Batteries included Perl distribution for Linux
Perl Shell
Latest commit 27dc05a Feb 2, 2017 @szabgab szabgab committed on GitHub Merge pull request #16 from thoke/bugfix/typos
Fix typos in README
Failed to load latest commit information.
src Fix typos in README Feb 2, 2017
t fix tests Sep 27, 2014
.gitignore add vagrant file Mar 16, 2015
TODO uncomment Oct 16, 2014
Vagrantfile try to set 4 cpus and 1Gb memory Mar 16, 2015 start counting again Mar 16, 2015
cpanfile move old file back Mar 17, 2015
cpanfile.snapshot move old file back Mar 17, 2015 sh to bash Sep 27, 2014

Build Status

DWIM Perl for Linux


The released package of DWIM Perl for Linux can be found at

Create derivative distribution

  • Fork the repository
  • Add and upgrade modules (see below)
  • Build new version (see below)

Building manually from source

If you'd like to build DWIM Perl for linux yourself you can do so by the following these instructions:

Install the prerequisites which are 'make' and 'gcc'


Note: in some cases the file downloaded by wget will have no .zip extension. You might want to rename the file before proceeding

cd dwimperl-linux-master
./ perl        # build perl
./ cpanm       # install cpanm
./ dwim
./ external
./ specials    # install special modules
./ modules     # install all the modules
./ test_all    # run a sanity check loading some of the modules we installed
./ zip         # create the tar.gz to be distributed

TBD: building based on existing DWIM Perl TBD: building on Digital Ocean

Upgrade Perl

Look at for the latest stable release of Perl

cd src/

Update the PERL_VERSION in


OpenSSL is needed by Net::SSLEay which is needed by LWP::Protocol::https and Business::PayPal and more. Look at and at 11-Feb-2013: openssl-1.0.1e.tar.gz ... 06-Aug-2014: openssl-1.0.1i.tar.gz

22-Jan-2015: openssl-1.0.2.tar.gz

cd src/

Update the OPENSSL entry in


libxml2 and zlib are needed for XML::LibXML See and

cd src

Update the LIBXML2 variable in



cd src

Update the ZLIB variable in


XML::Parser needs expat.

Visit and to see what is the latest then update the EXPAT variable in

cd src


Needed by Geo::IP

Visit that links to

cd src

Change the GEOIP variable in

Upgrade cpanm used for installing cpanm

Note: This copy of cpanm is only used to install the latest version of cpanm from CPAN. The rest of the modules are then installed using that version of cpanm.

cd src/
wget wget

Add CPAN Modules

Edit cpanfile add the names of the new modules. Run carton install. It will download the zip files and install the modules. Add the zip files to Git.

Some Problems:

It seems that if a prerequisite is already installed in the perl we are using, this will not download the zip file of that prerequisites either. I think adding the prerequisite explicitely to the cpanfile helped. Sometimes the modules is actually added to the local/cache but it is not added to the local/cache/modules/02packages.details.txt file Adding the minimum version number to cpanfile and running carton install again helped.

Upgrade CPAN Modules

Run ./ outdated to list the distributions that have newer versions on CPAN. Edit cpanfile and put the new version number after the name of the module: requires 'Module::Name', '3.14'; then run carton install to update the cpanfile.snapshot