Jos I. Boumans wrote:
Hi Guys,

Attached is a development release of M::L::Conditional. It depends on the new version of Module::Load i mailed around earlier today. Using that, there shouldn't be any more need for the VMS specific quirks in the test
> suite, and  they should pass cleanly.

John, Craig, if you guys could run the tests against the updated version of M::Load
and let me know if this is now VMS-proof, i'll release it as 0.18.

It needs the following patch to pass on VMS.

The Unixify is still needed, and the splitdir has to also be the UNIX version, as otherwise it returns VMS file specification components.

This is because both Perl (blead) and Module Load on VMS are now storing the %INC hash in UNIX syntax to prevent other modules from loading the same module twice.

The module load patch makes this work on versions of Perl before Blead, as blead perl now auto-magically converts the file syntax to UNIX before storing it.

It is still possible to get modules loaded multiple times, as the only way to prevent that would be if %INC tracked devices and inodes instead of pathnames. That is a generic Perl issue though.

-John
[EMAIL PROTECTED]
Personal Opinion Only
--- 01_Module_Load_Conditional.t#1      Sun Sep  9 04:52:16 2007
+++ 01_Module_Load_Conditional.t        Mon Sep 10 20:32:19 2007
@@ -47,8 +47,7 @@
                             q[  Found proper version] );
 
     ### This test is expecting the file to in UNIX format, so force
-    ### XXX no longer needed with M::Load 0.11_01
-    #$rv->{file} = VMS::Filespec::unixify($rv->{file}) if $^O eq 'VMS';
+    $rv->{file} = VMS::Filespec::unixify($rv->{file}) if ON_VMS;
 
     ### break up the specification
     my @rv_path = do {
@@ -59,7 +58,7 @@
         
         my($vol, $path, $file) = $class->splitpath( $rv->{'file'} );
 
-        my @path = ($vol, File::Spec->splitdir( $path ), $file );
+        my @path = ($vol, $class->splitdir( $path ), $file );
 
         ### First element could be blank for some system types like VMS
         shift @path if $vol eq '';
@@ -177,9 +176,6 @@
     {   package A::B::C::D; 
         $A::B::C::D::VERSION = $$; 
         $INC{'A/B/C/D.pm'}   = $$.$$;
-        
-        ### XXX this is no longer needed with M::Load 0.11_01
-        #$INC{'[.A.B.C]D.pm'} = $$.$$ if $^O eq 'VMS';
     }
     
     my $href = check_install( module => 'A::B::C::D', version => 0 );

Reply via email to