Note that the Win32 module is reported as being used on line 624 of file Bar.pm. Not only does that file contain no mention of Win32; but it’s only 24 lines long! How does the call find an unmentioned module on a non-existent line of code?
Win32.pm is an unusual module. It doesn't need to be loaded, to be used:
C:\test>perl -E"say Win32::GetOSVersion();" Service Pack 16060012107681
It is effectively demand-loaded. And that is probably the source of the problem. At some point in the process of loading the used modules, Win32 get demand loaded in order to satisfy some requirement of one of those used modules; and in the process, Win32 gets added to %INC.
Module::Info detects the presence/addition of Win32 and throws its hands up in horror.
If its purpose is to check that a certain set of required modules can be loaded -- a pointless test as they would be detected and clearly flagged by the standard Perl mechanisms anyway -- but if that is its purpose, it should stick to doing that. And only that.
There is no sense in calling foul because an extra module is loaded. That is none of its business with respect to its defined purpose.
Module::Info, like so many of the modules in the Module::* namespace is developed by *nix programmer without reference to, or concern for, anything outside that platform. Also, like so many of them, it is "testing" something that it is pointless to test. Something that if it failed, Perl's standard error reporting mechanisms would detect and report anyway; and in a far clearer and more usable fashion.
The best solution -- and I do mean best; not simplest or most convenient -- would be to disable all the tests that are dependent upon Module::Info; and refuse to allow it on your systems. It does things it shouldn't do.
In reply to Re: Installing Module::Info 0.35 for Strawberry Perl 5.22.0
by BrowserUk
in thread Installing Module::Info 0.35 for Strawberry Perl 5.22.0
by Athanasius
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |