syphilis has asked for the wisdom of the Perl Monks concerning the following question:

As I've intimated in the subject line, the question is little more than a curiosity ... but why (in Strawberry Perl) is MM_Win32.pm to be found in the perl/site/lib/ExtUtils/ folder (as opposed to the more usual location - perl/lib/ExtUtils/) ?

Cheers,
Rob
  • Comment on [Inconsequential] Strawberry Perl and MM_Win32.pm

Replies are listed 'Best First'.
Re: [Inconsequential] Strawberry Perl and MM_Win32.pm
by xdg (Monsignor) on Jan 20, 2007 at 15:50 UTC

    For the most part, any modules that are bundled with Strawberry from CPAN as opposed to the core Perl source are put in site/lib. (E.g. a more up-to-date version of ExtUtils::MakeMaker.) The exceptions are patches to core modules to let CPAN.pm upgrade core modules at all. (At least, that's what I think my logic was at the time.) Better suggestions welcome.

    -xdg

    Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

      Better suggestions welcome

      No, I don't have a better suggestion - though I would do it differently.

      Normally, when one updates a core module on Win32, it goes into perl/lib, clobbering the old version in the process. I personally don't see any reason to change that behaviour.

      Looking a little more closely at the Strawberry distro, we see there are still some MakeMaker modules in perl/lib/ExtUtils - eg EU::Liblist, which is duplicated in perl/site/lib/ExtUtils. (I think the duplicated modules are identical. One hopes so, as its the ones in perl/lib/ExtUtils that will be loaded.) If EU::MM is going into perl/site/lib then I think it would be a good idea to remove *all* of the MakeMaker modules from perl/lib/ExtUtils.

      Anyway .... nothing to lose any sleep over. I was merely taken aback for a few minutes when I went to open MM_Win32.pm and it wasn't there !! :-)

      Cheers,
      Rob
        I was merely taken aback for a few minutes when I went to open MM_Win32.pm and it wasn't there
        perldoc -m ExtUtils::MM_Win32

        This (along with "-l") is a handy feature of perldoc. I have $ENV{PAGER} set to "less.exe" and $ENV{EDITOR} set to "gvim.exe" so after the command above, I just type "v" and it pops me into the editor with the right file. It saves having to navigate directories.

        -xdg

        Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

Re: [Inconsequential] Strawberry Perl and MM_Win32.pm
by tye (Sage) on Jan 20, 2007 at 14:57 UTC

    Because MM_Win32.pm v1.12 comes with Perl 5.8.8 but strawberryperl needs MM_Win32.pm v1.1201 which has portability improvements (likely made by the strawberryperl team).

    - tye        

Re: [Inconsequential] Strawberry Perl and MM_Win32.pm
by CountZero (Bishop) on Jan 20, 2007 at 14:50 UTC
    Did you install the MM_Win32.pm module yourself or did it came bundled with this version of Perl? In AS-Perl all bundled modules go to perl/lib and all modules installed later go into perl/site/lib.

    CountZero

    "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law

      In AS-Perl all bundled modules go to perl/lib and all modules installed later go into perl/site/lib.

      False. AS only puts core modules go into perl/lib, all others go into site/lib.

        That is not true anymore. In the latest version of AS Perl (version 5.8.8 build 819), the perl/site/lib starts out empty and gets filled by modules you install yourself (through CPAN / CPANPLUS or ppm).

        From the docs:

        There are two install areas that always are present for an ActivePerl installation: perl and site. The perl interpreter itself, the core modules, and packages bundled by ActiveState are in the perl install area. The site install area is where the local administrator installs additional packages. This area starts out empty in a new installation of ActivePerl.

        CountZero

        "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law

Re: [Inconsequential] Strawberry Perl and MM_Win32.pm
by jonadab (Parson) on Jan 20, 2007 at 14:17 UTC

    The Strawberry Perl documentation does say that it is an alpha release, and that one of the implications of that is that not everything is necessarily installed in the ideal place, and that in future versions some things might get installed differently. Beyond that, there may not really be much of a reason.


    Sanity? Oh, yeah, I've got all kinds of sanity. In fact, I've developed whole new kinds of sanity. You can just call me "Mister Sanity". Why, I've got so much sanity it's driving me crazy.