Hi Roderich, hi Steve, hi [email protected], Roderich Schupp schrieb:
On 7/4/07, Steve Hay <[EMAIL PROTECTED]> wrote:This in turn seems to be due a problem in Module-ScanDeps. I'm using version 0.75, and I find that the output ofscandeps -V C:\perl5\site\lib\DBI.pm mentions DBI.pm but not DBI.dll. If I try the same command using version 0.54 of Module-ScanDeps then DBI.dll is mentioned in the output too.FWIW, Module::ScanDeps 0.75 works as expected here on Linux, so it must be something specific to Windows. You might try a simpler example, say Digest::MD5.
With the help of Steve Peters, I think I have tracked down a way to reproduce the problem on linux. The following snippet works on linux, the one after that doesn't:
scandeps.pl -V -e 'use DBI;' # output includes DBI.so scandeps.pl -V /path/to/DBI.pm # output does not include DBI.so Roderich, can you reproduce this? (See test script below.)I just wrote a test (t/11-finds-shared-lib.t) which tests both of the above cases, but not for DBI. I use Cwd because it's core. I haven't committed it yet.
That the second command should work (i.e. find a dll for DBI) on Windows for M::SD 0.73 seems actually like a bug in M::SD which was fixed in the recent releases: It seems like DBI.pm is scanned more than once: Once as a script and once as a module. The newer M::SD's prevent that from happening. Perhaps the duplication issue happened because of case insensitive file systems?
So if my analysis is correct, the bug that's left would be that *the /path/to/Module.pm case isn't considered a module so the corresponding aux. files aren't sought*.
I ran some tests on linux and got the following result matrix. On win32, I'd expect the results to include a PASS for at least DBI & 0.73 & path. Can somebody test that? My script is attached. (Should work if you install M::SD 0.73 and run it in a M::SD trunk checkout path!)
module path
dbi trunk PASS FAIL
0.73 PASS FAIL
cwd trunk PASS FAIL
0.73 PASS FAIL
Cheers,
Steffen
P.S.: Try running the test script as "perl tests.pl 2> /dev/null" or the
equivalent on Windows. Otherwise you get lots of M::SD output, too.
tests.pl
Description: Perl program
