develooper Front page | perl.perl5.porters | Postings from March 2014

[perl #121513] no PERL_IMPLICT_SYS Win32, exactly 4 .. in relative path, DynaLoader loads wrong dll

Thread Previous
From:
bulk88
Date:
March 27, 2014 00:14
Subject:
[perl #121513] no PERL_IMPLICT_SYS Win32, exactly 4 .. in relative path, DynaLoader loads wrong dll
Message ID:
rt-4.0.18-20184-1395879231-1609.121513-75-0@perl.org
# New Ticket Created by  bulk88 
# Please include the string:  [perl #121513]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=121513 >


This is a bug report for perl from bulk88@hotmail.com,
generated with the help of perlbug 1.40 running under perl 5.19.10.


-----------------------------------------------------------------
[Please describe your issue here]

This is a very strange bug, maybe with Windows XP SP3 specifically but 
it causes ExtUtils-Constant to fail on no PERL_IMPLICIT_SYS builds. 
DynaLoader and XSLoader both call win32_dynaload which contains the 
actual call to the Win OS (LoadLibraryExA). With PerlDir_mapA, which 
does something on PERL_IMPLICIT_SYS builds. PerlDir_mapA will convert 
relative paths "../../lib/auto/something/something.dll" to absolute 
paths through VDir::MapPathA. How VDir::MapPathA converts relative to 
absolute paths IDK. But anyway. Without PerlDir_mapA, LoadLibraryExA 
will get a relative path. Perl uses the flag 
LOAD_WITH_ALTERED_SEARCH_PATH. On MSDN today the description for the 
flag is.

-------------------------------------------
If this value is used and lpFileName specifies an absolute path, the 
system uses the alternate file search strategy discussed in the Remarks 
section to find associated executable modules that the specified module 
causes to be loaded. If this value is used and lpFileName specifies a 
relative path, the behavior is undefined.

If this value is not used, or if lpFileName does not specify a path, the 
system uses the standard search strategy discussed in the Remarks 
section to find associated executable modules that the specified module 
causes to be loaded.

This value cannot be combined with any LOAD_LIBRARY_SEARCH flag.
-------------------------------------------

Note, passing a relative path is "undefined behavior". What that means 
is debatable. Is it a wont fix MS bug? Is it an unimplemented feature? 
Does it do different random things on different versions of Windows?

Passing relative paths to LoadLibraryEx with "../../../.." goes 5 up, 
not 4 up. "../../.." and "../../../../.." both go 3 and 5 up correctly. 
I attached a mini source tree where I did the testing to isolate it from 
the general build process. t.pl is cut down DynaLoader. It takes 1 arg 
which is the path to pass to DynaLoader::dl_load_file. There is a 
poisoned 0 byte Win32.dll in the wrong location. And a good Win32.dll 
(no imp context, no imp sys, replace it with your own Win32.dll if you 
want) in the right place. "The specified procedure could not be found 
at"  and no error message, both mean success. "The specified procedure 
could not be found at" simply means this DLL and the perl519.dll are 
different build types (imp cxt, imp sys, etc).

First lets start at 3 dirs down from our intended lib dir.

--------------------------------------------
C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164>C:\perl519\nothd\bin\perl.
xe "-I..\..\..\lib" t.pl ..\..\..\lib\auto\Win32\Win32.dll
INC is
..\..\..\lib
C:/perl519/nothd/site/lib

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164>C:\perl519\nosys\bin\perl.
xe "-I..\..\..\lib" t.pl ..\..\..\lib\auto\Win32\Win32.dll
INC is
..\..\..\lib
C:/perl519/nosys/site/lib
Can't load '..\..\..\lib\auto\Win32\Win32.dll' for module 
ThisIsUnknownName: lo
d_file:The specified procedure could not be found at t.pl line 16.
  at t.pl line 16.

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164>C:\perl519\bin\perl.exe 
"-
..\..\..\lib" t.pl ..\..\..\lib\auto\Win32\Win32.dll
INC is
..\..\..\lib
C:/perl519/site/lib
Can't load '..\..\..\lib\auto\Win32\Win32.dll' for module 
ThisIsUnknownName: lo
d_file:The specified procedure could not be found at t.pl line 16.
  at t.pl line 16.

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164>
------------------------------------------

All successful. Now 1 dir down.

------------------------------------------

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa>C:\perl519\nothd\bin\pe
rl.exe "-I..\..\..\..\lib" t.pl ..\..\..\..\lib\auto\Win32\Win32.dll
INC is
..\..\..\..\lib
C:/perl519/nothd/site/lib
Can't load '..\..\..\..\lib\auto\Win32\Win32.dll' for module 
ThisIsUnknownName:
load_file:%1 is not a valid Win32 application at t.pl line 16.
  at t.pl line 16.

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa>C:\perl519\nosys\bin\pe
rl.exe "-I..\..\..\..\lib" t.pl ..\..\..\..\lib\auto\Win32\Win32.dll
INC is
..\..\..\..\lib
C:/perl519/nosys/site/lib
Can't load '..\..\..\..\lib\auto\Win32\Win32.dll' for module 
ThisIsUnknownName:
load_file:%1 is not a valid Win32 application at t.pl line 16.
  at t.pl line 16.

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa>C:\perl519\bin\perl.exe
  "-I..\..\..\..\lib" t.pl ..\..\..\..\lib\auto\Win32\Win32.dll
INC is
..\..\..\..\lib
C:/perl519/site/lib
Can't load '..\..\..\..\lib\auto\Win32\Win32.dll' for module 
ThisIsUnknownName:
load_file:The specified procedure could not be found at t.pl line 16.
  at t.pl line 16.

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa>
---------------------------------------------

nothd and nosys failed. With imp sys passed. "is not a valid Win32 
application " means the poisoned 0 byte Win32.dll was attempted to be 
loaded, that is the ONLY "fail" condition for this bug. Now 1 more dir 
down, so we are 5 deep.

---------------------------------------------
C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa\bbb>C:\perl519\bin\perl
.exe "-I..\..\..\..\..\lib" t.pl ..\..\..\..\..\lib\auto\Win32\Win32.dll
INC is
..\..\..\..\..\lib
C:/perl519/site/lib
Can't load '..\..\..\..\..\lib\auto\Win32\Win32.dll' for module 
ThisIsUnknownNam
e: load_file:The specified procedure could not be found at t.pl line 16.
  at t.pl line 16.

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa\bbb>C:\perl519\nothd\bi
n\perl.exe "-I..\..\..\..\..\lib" t.pl 
..\..\..\..\..\lib\auto\Win32\Win32.dll
INC is
..\..\..\..\..\lib
C:/perl519/nothd/site/lib

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa\bbb>C:\perl519\nosys\bi
n\perl.exe "-I..\..\..\..\..\lib" t.pl 
..\..\..\..\..\lib\auto\Win32\Win32.dll
INC is
..\..\..\..\..\lib
C:/perl519/nosys/site/lib
Can't load '..\..\..\..\..\lib\auto\Win32\Win32.dll' for module 
ThisIsUnknownNam
e: load_file:The specified procedure could not be found at t.pl line 16.
  at t.pl line 16.

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa\bbb>
----------------------------------------------

All passed.

In ExtUtils-Constant dir "aaa" is "0". But names dont matter, apparantly 
only their ".." positions do.

I dont have any ideas what to do about this.

Now for the -V of the 3 perls used above.

---------------------------------------------------------------------
C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa\bbb>C:\perl519\nosys\bi
n\perl.exe -V
Summary of my perl5 (revision 5 version 19 subversion 11) configuration:
   Derived from: fb9c5a1a0fcfb4a2365d1e1e33b5e738d5ff9302
   Platform:
     osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
     uname=''
     config_args='undef'
     hint=recommended, useposix=true, d_sigaction=undef
     useithreads=define, usemultiplicity=define
     use64bitint=undef, use64bitall=undef, uselongdouble=undef
     usemymalloc=n, bincompat5005=undef
   Compiler:
     cc='cl', ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -G7 -GL 
-DWIN32 -D_C
ONSOLE -DNO_STRICT  -DPERL_TEXTMODE_SCRIPTS 
-DPERL_HASH_FUNC_ONE_AT_A_TIME -DPER
L_IMPLICIT_CONTEXT -DUSE_PERLIO -D_USE_32BIT_TIME_T',
     optimize='-O1 -MD -Zi -DNDEBUG -G7 -GL',
     cppflags='-DWIN32'
     ccversion='13.10.6030', gccversion='', gccosandvers=''
     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
     d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
     ivtype='long', ivsize=4, nvtype='double', nvsize=8, 
Off_t='__int64', lseeksi
ze=8
     alignbytes=8, prototype=define
   Linker and Libraries:
     ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf 
-ltcg  -libpa
th:"c:\perl519\nosys\lib\CORE"  -machine:x86'
     libpth="C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\lib"
     libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib 
comdlg32.l
ib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib 
uuid.lib ws2_32
.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib comctl32.lib 
msvcrt.
lib
     perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib 
winspool.lib  comdlg
32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib 
uuid.lib ws
2_32.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib 
comctl32.lib msv
crt.lib
     libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl519.lib
     gnulibc_version=''
   Dynamic Linking:
     dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
     cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug 
-opt:ref,icf -l
tcg  -libpath:"c:\perl519\nosys\lib\CORE"  -machine:x86'


Characteristics of this binary (from libperl):
   Compile-time options: HAS_TIMES HAVE_INTERP_INTERN MULTIPLICITY
                         PERLIO_LAYERS PERL_DONT_CREATE_GVSV
                         PERL_HASH_FUNC_ONE_AT_A_TIME PERL_IMPLICIT_CONTEXT
                         PERL_MALLOC_WRAP PERL_NEW_COPY_ON_WRITE
                         PERL_PRESERVE_IVUV USE_ITHREADS USE_LARGE_FILES
                         USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                         USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
   Locally applied patches:
         uncommitted-changes
   Built under MSWin32
   Compiled at Mar 24 2014 00:48:28
   @INC:
     C:/perl519/nosys/site/lib
     C:/perl519/nosys/lib
     .

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa\bbb>C:\perl519\nothd\bi
n\perl.exe -V
Summary of my perl5 (revision 5 version 19 subversion 11) configuration:
   Derived from: fb9c5a1a0fcfb4a2365d1e1e33b5e738d5ff9302
   Platform:
     osname=MSWin32, osvers=5.1, archname=MSWin32-x86-perlio
     uname=''
     config_args='undef'
     hint=recommended, useposix=true, d_sigaction=undef
     useithreads=undef, usemultiplicity=undef
     use64bitint=undef, use64bitall=undef, uselongdouble=undef
     usemymalloc=n, bincompat5005=undef
   Compiler:
     cc='cl', ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -G7 -GL 
-DWIN32 -D_C
ONSOLE -DNO_STRICT  -DPERL_TEXTMODE_SCRIPTS 
-DPERL_HASH_FUNC_ONE_AT_A_TIME -DUSE
_PERLIO -D_USE_32BIT_TIME_T',
     optimize='-O1 -MD -Zi -DNDEBUG -G7 -GL',
     cppflags='-DWIN32'
     ccversion='13.10.6030', gccversion='', gccosandvers=''
     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
     d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
     ivtype='long', ivsize=4, nvtype='double', nvsize=8, 
Off_t='__int64', lseeksi
ze=8
     alignbytes=8, prototype=define
   Linker and Libraries:
     ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf 
-ltcg  -libpa
th:"c:\perl519\nothd\lib\CORE"  -machine:x86'
     libpth="C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\lib"
     libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib 
comdlg32.l
ib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib 
uuid.lib ws2_32
.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib comctl32.lib 
msvcrt.
lib
     perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib 
winspool.lib  comdlg
32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib 
uuid.lib ws
2_32.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib 
comctl32.lib msv
crt.lib
     libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl519.lib
     gnulibc_version=''
   Dynamic Linking:
     dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
     cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug 
-opt:ref,icf -l
tcg  -libpath:"c:\perl519\nothd\lib\CORE"  -machine:x86'


Characteristics of this binary (from libperl):
   Compile-time options: HAS_TIMES HAVE_INTERP_INTERN PERLIO_LAYERS
                         PERL_DONT_CREATE_GVSV PERL_HASH_FUNC_ONE_AT_A_TIME
                         PERL_MALLOC_WRAP PERL_NEW_COPY_ON_WRITE
                         PERL_PRESERVE_IVUV USE_LARGE_FILES USE_LOCALE
                         USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                         USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
   Locally applied patches:
         uncommitted-changes
   Built under MSWin32
   Compiled at Mar 24 2014 02:25:16
   @INC:
     C:/perl519/nothd/site/lib
     C:/perl519/nothd/lib
     .

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa\bbb>C:\perl519\bin\perl
.exe -V
Summary of my perl5 (revision 5 version 19 subversion 10) configuration:
   Derived from: 2179658b5e799a6e3c4e736ec7c84b0f50bf3473
   Ancestor: e9251c1a8f4944e6dceff5240d9e109ba075ff29
   Platform:
     osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
     uname=''
     config_args='undef'
     hint=recommended, useposix=true, d_sigaction=undef
     useithreads=define, usemultiplicity=define
     use64bitint=undef, use64bitall=undef, uselongdouble=undef
     usemymalloc=n, bincompat5005=undef
   Compiler:
     cc='cl', ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -G7 -GL 
-DWIN32 -D_C
ONSOLE -DNO_STRICT  -DPERL_TEXTMODE_SCRIPTS 
-DPERL_HASH_FUNC_ONE_AT_A_TIME -DPER
L_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -D_USE_32BIT_TIME_T',
     optimize='-O1 -MD -Zi -DNDEBUG -G7 -GL',
     cppflags='-DWIN32'
     ccversion='13.10.6030', gccversion='', gccosandvers=''
     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
     d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
     ivtype='long', ivsize=4, nvtype='double', nvsize=8, 
Off_t='__int64', lseeksi
ze=8
     alignbytes=8, prototype=define
   Linker and Libraries:
     ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf 
-ltcg  -libpa
th:"c:\perl519\lib\CORE"  -machine:x86'
     libpth="C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\lib"
     libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib 
comdlg32.l
ib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib 
uuid.lib ws2_32
.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib comctl32.lib 
msvcrt.
lib
     perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib 
winspool.lib  comdlg
32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib 
uuid.lib ws
2_32.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib 
comctl32.lib msv
crt.lib
     libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl519.lib
     gnulibc_version=''
   Dynamic Linking:
     dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
     cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug 
-opt:ref,icf -l
tcg  -libpath:"c:\perl519\lib\CORE"  -machine:x86'


Characteristics of this binary (from libperl):
   Compile-time options: HAS_TIMES HAVE_INTERP_INTERN MULTIPLICITY
                         PERLIO_LAYERS PERL_DONT_CREATE_GVSV
                         PERL_HASH_FUNC_ONE_AT_A_TIME PERL_IMPLICIT_CONTEXT
                         PERL_IMPLICIT_SYS PERL_MALLOC_WRAP
                         PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
                         USE_ITHREADS USE_LARGE_FILES USE_LOCALE
                         USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                         USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
   Locally applied patches:
         uncommitted-changes
         2179658b5e799a6e3c4e736ec7c84b0f50bf3473
   Built under MSWin32
   Compiled at Mar 15 2014 22:32:09
   @INC:
     C:/perl519/site/lib
     C:/perl519/lib
     .

C:\sources\dlbug\src\cpan\ExtUtils-Constant\ext-8164\aaa\bbb>
---------------------------------------------------------------------


[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
     category=core
     severity=low
---
Site configuration information for perl 5.19.10:

Configured by Owner at Sat Mar 15 22:30:42 2014.

Summary of my perl5 (revision 5 version 19 subversion 10) configuration:
   Derived from: 2179658b5e799a6e3c4e736ec7c84b0f50bf3473
   Ancestor: e9251c1a8f4944e6dceff5240d9e109ba075ff29
   Platform:
     osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
     uname=''
     config_args='undef'
     hint=recommended, useposix=true, d_sigaction=undef
     useithreads=define, usemultiplicity=define
     use64bitint=undef, use64bitall=undef, uselongdouble=undef
     usemymalloc=n, bincompat5005=undef
   Compiler:
     cc='cl', ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -G7 -GL 
-DWIN32 -D_CONSOLE -DNO_STRICT  -DPERL_TEXTMODE_SCRIPTS 
-DPERL_HASH_FUNC_ONE_AT_A_TIME -DPERL_IMPLICIT_CONTEXT 
-DPERL_IMPLICIT_SYS -DUSE_PERLIO -D_USE_32BIT_TIME_T',
     optimize='-O1 -MD -Zi -DNDEBUG -G7 -GL',
     cppflags='-DWIN32'
     ccversion='13.10.6030', gccversion='', gccosandvers=''
     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
     d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
     ivtype='long', ivsize=4, nvtype='double', nvsize=8, 
Off_t='__int64', lseeksize=8
     alignbytes=8, prototype=define
   Linker and Libraries:
     ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf 
-ltcg  -libpath:"c:\perl519\lib\CORE"  -machine:x86'
     libpth="C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\lib"
     libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib 
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib 
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  version.lib 
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
     perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib 
winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib 
oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib 
version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
     libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl519.lib
     gnulibc_version=''
   Dynamic Linking:
     dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
     cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug 
-opt:ref,icf -ltcg  -libpath:"c:\perl519\lib\CORE"  -machine:x86'

Locally applied patches:
     uncommitted-changes
     2179658b5e799a6e3c4e736ec7c84b0f50bf3473

---
@INC for perl 5.19.10:
     C:/perl519/site/lib
     C:/perl519/lib
     .

---
Environment for perl 5.19.10:
     HOME (unset)
     LANG (unset)
     LANGUAGE (unset)
     LD_LIBRARY_PATH (unset)
     LOGDIR (unset)
     PATH=C:\perl519\bin;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\IDE;C:\Program Files\Microsoft Visual Studio .NET 
2003\VC7\BIN;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\Tools;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\Tools\bin\prerelease;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;
     PERL_BADLANG (unset)
     SHELL (unset)

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About