Perl support on Windows

Perl is widely known to be quite cross-platform, and as such developers of Perl projects often have Windows users, but supporting Windows often requires special care and options for testing on Windows are limited. Perl support for testing on Windows would be a great benefit. ActivePerl and Strawberry Perl are common Perl distributions for Windows so supporting one or both would be ideal.


Perl is also used in tooling for some projects (for example, to autogenerate code, check styles, etc.). It would be nice to have strawberryperl installed by default. Right now it can be installed via:

cinst -y strawberryperl


I would second this. Right now I develop on a Mac and my Perl distributions regularly pass on all systems except MSWin32. :disappointed: And I don’t seem to have a way to test MSWin32 before I release the software. Please include Perl in your Windows CI server.

It appears that Perl is available since it is included with git-bash, but this version is quite limited. Aside from installing strawberryperl, we also had to convince CMake to find this perl version with:

export CMAKE_PROGRAM_PATH=C:/Strawberry/perl/bin

For other applications, you might have to modify the PATH instead:

PATH="/c/Strawberry/perl/bin:$PATH" ./run-your-script

The reason I would not globally override PATH is that it cause unexpected, hard-to-diagnose issues if some other Travis tooling or git has other expectations of the perl interpreter.

I too would love for the Travis Perl matrix stuff to work, but in the meantime, I’ve put together some examples and explanations for various approaches to testing single or multiple versions of Strawberry Perl on the Travis Windows environment.

I started using it in a couple of my modules. Works great for one (I have some Windows bugs to fix there!), but not the other. In this latter case it fails with no output after the cinst -y strawberryperl line. Anyone have an idea what might be happening here? This is the .travis.yml.

You appear to have secrets:

Setting environment variables from repository settings
$ export DOCKER_PASS=[secure]
$ export DOCKER_USER=[secure]

which are currently not supported:

Yeah, @BanzaiMan was kind enough to point that out to me in a different forum. I had forgotten about them.

If Google brought you to this thread, please go here instead.