|Developer(s)||Adam Kennedy and others.|
|Stable release||22.214.171.124 / May 11, 2016|
|License||GNU Public License or the Artistic License|
Strawberry Perl is a distribution of the Perl programming language for the Microsoft Windows platform. Additionally, strawberry contains a fully featured MinGW C/C++ compiler with many libraries included. While most other distributions rely on the user having software development tools already set up to install certain Perl components, Strawberry Perl ships with the most commonly used tools preconfigured and packaged. It is a dramatic departure from other Perl distributions, and has influenced other distributions (such as its primary rival, the freely available but closed source ActivePerl distribution released by ActiveState) to provide such development tools in their own distribution.
Through the CPAN, Perl users can download any of a vast number of prepackaged modules. Many of these modules can be installed in any Perl environment; however, certain modules (XS modules) require a working C compiler and development environment to install successfully. Most Perl distributions assume that such an environment - which is usually provided with most Unix or Linux systems - already exists; however, Windows does not come with a C compiler and the required development environment, and these must be installed separately by the user or the administrator.
However, Strawberry Perl incorporates the MinGW development environment during installation. All the installed Perl tools are set up to use these built-in libraries and development tools to compile XS modules as required. This allows Strawberry Perl to use many XS modules without modification, directly from the CPAN.
As of April 2013[update], Strawberry Perl consists of:
- A Perl distribution
- A MinGW distribution, consisting of gcc, ld, gmake and other binutils.
- Windows installation scripts to allow Strawberry Perl to be easily uninstalled.
- Various non-standard but widely used Perl modules. These mostly relate to ease of installation of further extensions from the CPAN, but also include various tools that enhance the ability to install packages from other sources such as the Perl Archive Toolkit, the Perl package manager and the Perl Installation Program.
Comparison with other distributions
ActivePerl allows installation of packages specially packaged for Windows, called PPMs, so users can easily install popular Perl modules. Several large repositories of such prepackaged modules are available, including an official repository hosted by ActiveState. However, these repositories cannot easily cope with the large number of modules currently in and continually being added to the CPAN, and it can be difficult to find new or uncommon modules in the PPMs repositories.
Since PPMs are prepackaged for Windows, they may be simpler to install than CPAN modules in Strawberry Perl. Some CPAN modules will not work on Windows, as they rely on Unixisms or operating-system-specific tools; relying on prepackaged PPMs which are known to work on Windows can avoid such problems.
Strawberry Perl is more Unixy in principle and while it is good at popular Perl tasks (like text processing), it falls short in Windows GUI framework support and direct Win32 API access (for example to automate Windows or rapidly develop a user interface) which its competitor does very well if you install the correct libraries.