# Perl support on Windows

**URL:** <https://travis-ci.community/t/perl-support-on-windows/321>\
**Category:** Windows\
**Created:** [October 12, 2018, 9:55pm UTC](https://travis-ci.community/t/perl-support-on-windows/321 "2018-10-12T21:55:00Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Grinnz](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/grinnz/32/165_2.png) [@Grinnz](https://travis-ci.community/u/Grinnz)\
**Post date:** [October 12, 2018, 9:55pm UTC](https://travis-ci.community/t/perl-support-on-windows/321/1 "2018-10-12T21:55:00Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Lekensteyn](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/lekensteyn/32/880_2.png) [@Lekensteyn](https://travis-ci.community/u/Lekensteyn)\
**Post date:** [January 5, 2019, 12:47pm UTC](https://travis-ci.community/t/perl-support-on-windows/321/2 "2019-01-05T12:47:07Z")

</div>

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:

```auto
cinst -y strawberryperl
```

---

<div class="post-metadata">

**Author:** ![balajirama](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@balajirama](https://travis-ci.community/u/balajirama)\
**Post date:** [January 6, 2019, 1:21pm UTC](https://travis-ci.community/t/perl-support-on-windows/321/3 "2019-01-06T13:21:46Z")

</div>

👍

I would second this. Right now I develop on a Mac and my Perl distributions regularly pass on all systems except MSWin32. 😞 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.

---

<div class="post-metadata">

**Author:** ![Lekensteyn](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/lekensteyn/32/880_2.png) [@Lekensteyn](https://travis-ci.community/u/Lekensteyn)\
**Post date:** [January 8, 2019, 12:26pm UTC](https://travis-ci.community/t/perl-support-on-windows/321/4 "2019-01-08T12:26:55Z")

</div>

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:

```auto
export CMAKE_PROGRAM_PATH=C:/Strawberry/perl/bin

```

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

```auto
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.

---

<div class="post-metadata">

**Author:** ![theory](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/theory/32/948_2.png) [@theory](https://travis-ci.community/u/theory)\
**Post date:** [January 12, 2019, 4:09pm UTC](https://travis-ci.community/t/perl-support-on-windows/321/5 "2019-01-12T16:09:38Z")

</div>

I too would love for the Travis Perl matrix stuff to work, but in the meantime, I’ve put together [some examples and explanations](https://github.com/theory/winperl-travis) for various approaches to testing single or multiple versions of Strawberry Perl on the Travis Windows environment.

---

<div class="post-metadata">

**Author:** ![theory](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/theory/32/948_2.png) [@theory](https://travis-ci.community/u/theory)\
**Post date:** [January 13, 2019, 2:01pm UTC](https://travis-ci.community/t/perl-support-on-windows/321/6 "2019-01-13T14:01:34Z")

</div>

I started using it in a couple of my modules. Works great for [one](https://travis-ci.org/theory/text-markup/jobs/478910485) (I have some Windows bugs to fix there!), but not [the other](https://travis-ci.org/theory/tap-parser-sourcehandler-pgtap/jobs/478910455). 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`](https://github.com/theory/tap-parser-sourcehandler-pgtap/blob/develop/.travis.yml).

---

<div class="post-metadata">

**Author:** ![Lekensteyn](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/lekensteyn/32/880_2.png) [@Lekensteyn](https://travis-ci.community/u/Lekensteyn)\
**Post date:** [January 17, 2019, 10:40pm UTC](https://travis-ci.community/t/perl-support-on-windows/321/7 "2019-01-17T22:40:49Z")

</div>

You appear to have secrets:

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

```

which are currently not supported:

> [@Current known issues — Please read this before posting a new topic](https://travis-ci.community/t/current-known-issues-please-read-this-before-posting-a-new-topic/264):
>
> Here are some issues that we know about, beyond language support. Secrets are not filtered For the time being, secrets (whether they are defined in .travis.yml or on the Settings panel) are not filtered. Be mindful of potential leaks, and review Caching is not yet supported This is now working in production on both .com and .org. Debug mode is not supported NVS version names are different from those of NVM As a result, some names in nvm do not work on Windows, and names on nvs do not wo…

---

<div class="post-metadata">

**Author:** ![theory](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/theory/32/948_2.png) [@theory](https://travis-ci.community/u/theory)\
**Post date:** [January 18, 2019, 12:17am UTC](https://travis-ci.community/t/perl-support-on-windows/321/8 "2019-01-18T00:17:43Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![YakDriver](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/yakdriver/32/1073_2.png) [@YakDriver](https://travis-ci.community/u/YakDriver)\
**Post date:** [January 28, 2019, 7:25pm UTC](https://travis-ci.community/t/perl-support-on-windows/321/9 "2019-01-28T19:25:19Z")

</div>

If Google brought you to this thread, please go [here](https://travis-ci.community/t/current-known-issues-please-read-this-before-posting-a-new-topic/264/10) instead.
