Jan Dubois wrote:

>Hi there!
>
>I've uploaded libwin32 0.24 to CPAN.
>
Perl change 22537 added Win32.pm+Win32.xs to the core, which means that 
these files are no longer required in libwin32 for $^] >= 5.8.4.  I 
guess you might want to include them anyway for the sake of older perls 
and/or to provide updated versions of them, but one possible problem 
springs to mind:  after installing libwin32 on, say, perl-5.8.6, we now 
have two copies of the Win32 module -- one in lib/ and one in 
site/lib/.  I believe that the subroutines labelled [EXT] are loaded 
from these files.  With a standard @INC path, the lib/ version will be 
preferred to the site/lib/ version.

Thus, if libwin32 contains an updated Win32 module then the updates will 
not actually be "seen", becuase the out of date core version in lib/ 
will be used instead.

Even if the core perl version is kept up to date (which I will endeavour 
to do), there will still be occasions on which a libwin32 containing a 
new version of Win32 is available before the next core perl containing 
such an update is released, during which time the above problem will 
still occur (unless users delete their core Win32 files or fiddle with 
@INC).

I guess this problem must affect all "dual-lived" modules.  I think the 
solution generally employed is to have such modules install themselves 
into lib/ rather than site/lib/, so that if you update from CPAN then it 
overwrites the core's lib/ version.  I think something like:

INSTALLDIRS => ($] >= 5.008004 ? 'perl' : 'site')

does it, but we only want that done for Win32 itself, not for all the 
other Win32::* modules included.  Is this possible?  I thought maybe add 
the above to the top-level Makefile.PL, and then override it with

INSTALLDIRS => 'site'

in every sub-dir Makefile.PL, but this seems not to work at a quick try 
-- the sub-dir modules still went into lib/ :(

If we do work out a way to have the core's Win32.pm overwritten when 
updating libwin32, then libwin32's Win32.pm will need to have the POD 
added to it like the core's copy now has, since lib/Win32.pod was 
removed from the core by #22537, otherwise users are left with no POD 
after such an update!

- Steve


------------------------------------------------
Radan Computational Ltd.

The information contained in this message and any files transmitted with it are 
confidential and intended for the addressee(s) only.  If you have received this 
message in error or there are any problems, please notify the sender 
immediately.  The unauthorized use, disclosure, copying or alteration of this 
message is strictly forbidden.  Note that any views or opinions presented in 
this email are solely those of the author and do not necessarily represent 
those of Radan Computational Ltd.  The recipient(s) of this message should 
check it and any attached files for viruses: Radan Computational will accept no 
liability for any damage caused by any virus transmitted by this email.

Reply via email to