Need Perl6 modules on Windows then use Zef

Lately I have been working on writing some serious Perl 6 so I can discuss and review at the NYC Perl 6 Beginners group in After doing some research I then realize that I need to install additional Perl 6 modules on my Windows machine. In a Rakudo Star installation for Windows you have Panda as your default Perl6 module manager but it doesn't quite work for Windows just yet. In this post I list a few Gotchas while attempting to install HTTP::UserAgent on Windows

Here's an example of me attempting to install Perl6 HTTP::UserAgent on Windows via Powershell: HTTP::UserAgent Install via Powershell

In the example above you see that it fails to find the 'git' command in line #4

Same example now running via Windows Github Git Shell :
HTTP::UserAgent install via Git Shell

This time around it finds the git command but it fails to run prove because the full path name for prove is not Windows friendly.

I ran out of ideas so I joined #perl6 irc chat in freenode where ugexe and ZoffixWin suggested the use of Zef another module manager for Perl6.

and boom it worked! Zef install HTTP::UserAgent

Thanks to Zoffix, ugexe and the perl6 community.


Thanks for that Charlie! Sadly there are few people using rakudo on Windows.

I've added some "errata" comments to

Hmm, sounds to me that git is not in the Windows Path variable. I use panda without problems on Windows and HTTP::UserAgent was installed without errors too. The same with Powershell and Panda.

When I open a new command line and enter "WHERE git", Windows says me it is in C:\Program Files\Git\cmd\git.exe.

So, I think you have rather a configuration than a panda problem.

There are multiple reports of panda not working on Windows, this is hardly a unique experience to op. If you read his entire post you'll even see that he got past the 'git' issue, so what you're referring to has nothing to do with his problem.

I do not say that panda does not have problems on Windows.
I do say that the error "'git' is not recognized as an internal or external command,
operable program or batch file." is not a panda one.
I read the entire post and the gist as well. And his walkaround was to use the Git shell not to put the git.exe in the PATH environment variable. If you use the GIT CMD shell it works as well.
So, Panda has flaws but you cannot blame it for this git problem thing.

You are assuming panda does not have the ability to change the environmental variables it spawns processes (like git itself). I know for a fact the way it handles environmental variables for spawned processes is bugged, because I've fixed it in Zef years ago.

Hint: there are ramifications from switching to 'run' from 'shell' that require more than passing an array of command parts instead of a string

Leave a comment

About Charlie Gonzalez

user-pic I blog about Perl.