http://www.perlmonks.org?node_id=11108184


in reply to Re^4: Can't locate strict.pm in @INC (@INC contains: .)
in thread Can't locate strict.pm in @INC (@INC contains: .)

That error shows there's still a copy of Strawberry Perl somewhere. Specifically, in E:\Outils_Exploit\Strawberry. That appears to be in your path before the active state perl you're trying to run. As davido said directly, and others have strongly hinted, whichever perl is first in your path is the one that will run.

A good way to find out when you have multiple executable programs of the same name in your Windows path is to use the builtin where. With my path as currently set, I only have one perl.exe visible, but there are two copies of find.

C:\usr\local\share\PassThru\perl>where perl c:\usr\local\apps\berrybrew\perls\system\perl\bin\perl.exe C:\usr\local\share\PassThru\perl>where find C:\Windows\System32\find.exe c:\usr\local\bin\find.exe
As such, when I run perl, it will run that one copy. But if I run find, the copy in c:\windows\system32 will take priority. If you run something similar for where perl, or where cpan, or where cpanm, or where ppm, you might see more than one instance of one or more of those. You then need to make sure that the correct perl is coming first in the path, as well as the correct helper utilities (like whatever you use for downloading and installing modules)

Further, Makefile is not a perl script, so perl Makefile is trying to run a set of rules that "make" (or similar) would want with the perl interpreter, which isn't going to work right. The normal idiom is

perl Makefile.PL make make test make install
, where Makefile.PL is a perl script that creates the Makefile for make to run, and make might be dmake or gmake instead, depending on your perl version and whether it's ActiveState or Strawberry or something else. Once you've got the right perl in your path, run perl -V:make to find out which make utility you should use.