<?xml version="1.0" encoding="windows-1252"?>
<node id="1005217" title="Re^4: Where should (or could) a distribution override HARNESS_OPTIONS? (use Inline works like this)" created="2012-11-23 01:28:45" updated="2012-11-23 01:28:45">
<type id="11">
note</type>
<author id="961">
Anonymous Monk</author>
<data>
<field name="doctext">
&lt;p&gt; "build" refers to Inline creating a module in _Inline (like h2xs) and making it  at use/BEGIN time (perl Makefile.PL/make install), before your program runs, ex
&lt;spoiler&gt;&lt;c&gt;
$ perl def.pl
validate Stage
Starting Build Preprocess Stage
get_maps Stage
Finished Build Preprocess Stage

Starting Build Parse Stage
Finished Build Parse Stage

Starting Build Glue 1 Stage
Finished Build Glue 1 Stage

Starting Build Glue 2 Stage
Finished Build Glue 2 Stage

Starting Build Glue 3 Stage
Finished Build Glue 3 Stage

Starting Build Compile Stage
  Starting "perl Makefile.PL" Stage
Writing Makefile for def_pl_38b1
Writing MYMETA.yml and MYMETA.json
  Finished "perl Makefile.PL" Stage

  Starting "make" Stage
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe C:\perl\site\5.14.1\lib\ExtUtils\xsubpp  -typemap "C:\perl\5.14.1\l
ib\ExtUtils\typemap"  def_pl_38b1.xs &gt; def_pl_38b1.xsc &amp;&amp; C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtil
s::Command -e mv -- def_pl_38b1.xsc def_pl_38b1.c
gcc -c  -I"D:/soInline"       -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_S
YS -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"0.00\"    -DXS_VERSION=\"0.00\"  "-IC:\perl\5.14.1\lib\MSW
in32-x86-multi-thread\CORE"   def_pl_38b1.c
Running Mkbootstrap for def_pl_38b1 ()
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 644 def_pl_38b1.bs
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Mksymlists \
     -e "Mksymlists('NAME'=&gt;\"def_pl_38b1\", 'DLBASE' =&gt; 'def_pl_38b1', 'DL_FUNCS' =&gt; {  }, 'FUNCLIST' =&gt; [], 'IMPORTS'
=&gt; {  }, 'DL_VARS' =&gt; []);"
dlltool --def def_pl_38b1.def --output-exp dll.exp
g++ -o blib\arch\auto\def_pl_38b1\def_pl_38b1.dll -Wl,--base-file -Wl,dll.base -mdll -s -L"c:\perl\5.14.1\lib\MSWin32-x8
6-multi-thread\CORE" -L"C:\MinGW\lib" def_pl_38b1.o   C:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE\libperl514.a -lmo
ldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2
_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 dll.exp
dlltool --def def_pl_38b1.def --base-file dll.base --output-exp dll.exp
g++ -o blib\arch\auto\def_pl_38b1\def_pl_38b1.dll -mdll -s -L"c:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE" -L"C:\Mi
nGW\lib" def_pl_38b1.o   C:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE\libperl514.a -lmoldname -lkernel32 -luser32 -l
gdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -
lodbc32 -lodbccp32 -lcomctl32 dll.exp
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 755 blib\arch\auto\def_pl_38b1\def_
pl_38b1.dll
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e cp -- def_pl_38b1.bs blib\arch\auto\def_pl_3
8b1\def_pl_38b1.bs
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 644 blib\arch\auto\def_pl_38b1\def_
pl_38b1.bs
  Finished "make" Stage

  Starting "make install" Stage
Files found in blib\arch: installing files in blib\lib into architecture dependent library tree
Installing D:\soInline\_Inline\lib\auto\def_pl_38b1\def_pl_38b1.bs
Installing D:\soInline\_Inline\lib\auto\def_pl_38b1\def_pl_38b1.dll
  Finished "make install" Stage

  Starting Cleaning Up Stage
  Finished Cleaning Up Stage

Finished Build Compile Stage

SV = IV(0x99aa48) at 0x99aa4c
  REFCNT = 1
  FLAGS = (PADMY,IOK,pIOK)
  IV = 123
SV = IV(0x99aa48) at 0x99aa4c
  REFCNT = 1
  FLAGS = (PADMY,IOK,pIOK)
  IV = 1

$ perl notdef.pl
validate Stage
Starting Build Preprocess Stage
get_maps Stage
Finished Build Preprocess Stage

Starting Build Parse Stage
Finished Build Parse Stage

Starting Build Glue 1 Stage
Finished Build Glue 1 Stage

Starting Build Glue 2 Stage
Finished Build Glue 2 Stage

Starting Build Glue 3 Stage
Finished Build Glue 3 Stage

Starting Build Compile Stage
  Starting "perl Makefile.PL" Stage
Writing Makefile for modSV
Writing MYMETA.yml and MYMETA.json
  Finished "perl Makefile.PL" Stage

  Starting "make" Stage
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe C:\perl\site\5.14.1\lib\ExtUtils\xsubpp  -typemap "C:\perl\5.14.1\l
ib\ExtUtils\typemap"  modSV.xs &gt; modSV.xsc &amp;&amp; C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -
e mv -- modSV.xsc modSV.c
gcc -c  -I"D:/soInline"       -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_S
YS -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"0.00\"    -DXS_VERSION=\"0.00\"  "-IC:\perl\5.14.1\lib\MSW
in32-x86-multi-thread\CORE"   modSV.c
Running Mkbootstrap for modSV ()
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 644 modSV.bs
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Mksymlists \
     -e "Mksymlists('NAME'=&gt;\"modSV\", 'DLBASE' =&gt; 'modSV', 'DL_FUNCS' =&gt; {  }, 'FUNCLIST' =&gt; [], 'IMPORTS' =&gt; {  }, 'DL
_VARS' =&gt; []);"
dlltool --def modSV.def --output-exp dll.exp
g++ -o blib\arch\auto\modSV\modSV.dll -Wl,--base-file -Wl,dll.base -mdll -s -L"c:\perl\5.14.1\lib\MSWin32-x86-multi-thre
ad\CORE" -L"C:\MinGW\lib" modSV.o   C:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE\libperl514.a -lmoldname -lkernel32
-luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm
-lversion -lodbc32 -lodbccp32 -lcomctl32 dll.exp
dlltool --def modSV.def --base-file dll.base --output-exp dll.exp
g++ -o blib\arch\auto\modSV\modSV.dll -mdll -s -L"c:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE" -L"C:\MinGW\lib" mod
SV.o   C:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE\libperl514.a -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -
lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32
 -lcomctl32 dll.exp
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 755 blib\arch\auto\modSV\modSV.dll
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e cp -- modSV.bs blib\arch\auto\modSV\modSV.bs

C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 644 blib\arch\auto\modSV\modSV.bs
  Finished "make" Stage

  Starting "make install" Stage
Files found in blib\arch: installing files in blib\lib into architecture dependent library tree
Installing D:\soInline\_Inline\lib\auto\modSV\modSV.bs
Installing D:\soInline\_Inline\lib\auto\modSV\modSV.dll
  Finished "make install" Stage

  Starting Cleaning Up Stage
  Finished Cleaning Up Stage

Finished Build Compile Stage

SV = IV(0xc39248) at 0xc3924c
  REFCNT = 1
  FLAGS = (PADMY,IOK,pIOK)
  IV = 123
SV = IV(0xc39248) at 0xc3924c
  REFCNT = 1
  FLAGS = (PADMY,IOK,pIOK)
  IV = 1

&lt;/c&gt;
&lt;/spoiler&gt;
&lt;p&gt; subsequent runs don't "build" 
&lt;p&gt; unless the c-source changes &lt;spoiler&gt;&lt;c&gt;

$ perl -le  " print qq{\n/* blah */\n\n} " &gt;&gt; modsv.c

$ perl def.pl
validate Stage
Starting Build Preprocess Stage
get_maps Stage
Finished Build Preprocess Stage

Starting Build Parse Stage
Finished Build Parse Stage

Starting Build Glue 1 Stage
Finished Build Glue 1 Stage

Starting Build Glue 2 Stage
Finished Build Glue 2 Stage

Starting Build Glue 3 Stage
Finished Build Glue 3 Stage

Starting Build Compile Stage
  Starting "perl Makefile.PL" Stage
Writing Makefile for def_pl_4ff5
Writing MYMETA.yml and MYMETA.json
  Finished "perl Makefile.PL" Stage

  Starting "make" Stage
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe C:\perl\site\5.14.1\lib\ExtUtils\xsubpp  -typemap "C:\perl\5.14.1\l
ib\ExtUtils\typemap"  def_pl_4ff5.xs &gt; def_pl_4ff5.xsc &amp;&amp; C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtil
s::Command -e mv -- def_pl_4ff5.xsc def_pl_4ff5.c
gcc -c  -I"D:/soInline"       -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_S
YS -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"0.00\"    -DXS_VERSION=\"0.00\"  "-IC:\perl\5.14.1\lib\MSW
in32-x86-multi-thread\CORE"   def_pl_4ff5.c
Running Mkbootstrap for def_pl_4ff5 ()
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 644 def_pl_4ff5.bs
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Mksymlists \
     -e "Mksymlists('NAME'=&gt;\"def_pl_4ff5\", 'DLBASE' =&gt; 'def_pl_4ff5', 'DL_FUNCS' =&gt; {  }, 'FUNCLIST' =&gt; [], 'IMPORTS'
=&gt; {  }, 'DL_VARS' =&gt; []);"
dlltool --def def_pl_4ff5.def --output-exp dll.exp
g++ -o blib\arch\auto\def_pl_4ff5\def_pl_4ff5.dll -Wl,--base-file -Wl,dll.base -mdll -s -L"c:\perl\5.14.1\lib\MSWin32-x8
6-multi-thread\CORE" -L"C:\MinGW\lib" def_pl_4ff5.o   C:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE\libperl514.a -lmo
ldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2
_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 dll.exp
dlltool --def def_pl_4ff5.def --base-file dll.base --output-exp dll.exp
g++ -o blib\arch\auto\def_pl_4ff5\def_pl_4ff5.dll -mdll -s -L"c:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE" -L"C:\Mi
nGW\lib" def_pl_4ff5.o   C:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE\libperl514.a -lmoldname -lkernel32 -luser32 -l
gdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -
lodbc32 -lodbccp32 -lcomctl32 dll.exp
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 755 blib\arch\auto\def_pl_4ff5\def_
pl_4ff5.dll
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e cp -- def_pl_4ff5.bs blib\arch\auto\def_pl_4
ff5\def_pl_4ff5.bs
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 644 blib\arch\auto\def_pl_4ff5\def_
pl_4ff5.bs
  Finished "make" Stage

  Starting "make install" Stage
Files found in blib\arch: installing files in blib\lib into architecture dependent library tree
Installing D:\soInline\_Inline\lib\auto\def_pl_4ff5\def_pl_4ff5.bs
Installing D:\soInline\_Inline\lib\auto\def_pl_4ff5\def_pl_4ff5.dll
  Finished "make install" Stage

  Starting Cleaning Up Stage
  Finished Cleaning Up Stage

Finished Build Compile Stage

SV = IV(0x99aa48) at 0x99aa4c
  REFCNT = 1
  FLAGS = (PADMY,IOK,pIOK)
  IV = 123
SV = IV(0x99aa48) at 0x99aa4c
  REFCNT = 1
  FLAGS = (PADMY,IOK,pIOK)
  IV = 1

$ perl notdef.pl
validate Stage
Starting Build Preprocess Stage
get_maps Stage
Finished Build Preprocess Stage

Starting Build Parse Stage
Finished Build Parse Stage

Starting Build Glue 1 Stage
Finished Build Glue 1 Stage

Starting Build Glue 2 Stage
Finished Build Glue 2 Stage

Starting Build Glue 3 Stage
Finished Build Glue 3 Stage

Starting Build Compile Stage
  Starting "perl Makefile.PL" Stage
Writing Makefile for modSV
Writing MYMETA.yml and MYMETA.json
  Finished "perl Makefile.PL" Stage

  Starting "make" Stage
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe C:\perl\site\5.14.1\lib\ExtUtils\xsubpp  -typemap "C:\perl\5.14.1\l
ib\ExtUtils\typemap"  modSV.xs &gt; modSV.xsc &amp;&amp; C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -
e mv -- modSV.xsc modSV.c
gcc -c  -I"D:/soInline"       -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_S
YS -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"0.00\"    -DXS_VERSION=\"0.00\"  "-IC:\perl\5.14.1\lib\MSW
in32-x86-multi-thread\CORE"   modSV.c
Running Mkbootstrap for modSV ()
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 644 modSV.bs
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Mksymlists \
     -e "Mksymlists('NAME'=&gt;\"modSV\", 'DLBASE' =&gt; 'modSV', 'DL_FUNCS' =&gt; {  }, 'FUNCLIST' =&gt; [], 'IMPORTS' =&gt; {  }, 'DL
_VARS' =&gt; []);"
dlltool --def modSV.def --output-exp dll.exp
g++ -o blib\arch\auto\modSV\modSV.dll -Wl,--base-file -Wl,dll.base -mdll -s -L"c:\perl\5.14.1\lib\MSWin32-x86-multi-thre
ad\CORE" -L"C:\MinGW\lib" modSV.o   C:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE\libperl514.a -lmoldname -lkernel32
-luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm
-lversion -lodbc32 -lodbccp32 -lcomctl32 dll.exp
dlltool --def modSV.def --base-file dll.base --output-exp dll.exp
g++ -o blib\arch\auto\modSV\modSV.dll -mdll -s -L"c:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE" -L"C:\MinGW\lib" mod
SV.o   C:\perl\5.14.1\lib\MSWin32-x86-multi-thread\CORE\libperl514.a -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -
lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32
 -lcomctl32 dll.exp
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 755 blib\arch\auto\modSV\modSV.dll
C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e cp -- modSV.bs blib\arch\auto\modSV\modSV.bs

C:\perl\5.14.1\bin\MSWin32-x86-multi-thread\perl.exe -MExtUtils::Command -e chmod -- 644 blib\arch\auto\modSV\modSV.bs
  Finished "make" Stage

  Starting "make install" Stage
Files found in blib\arch: installing files in blib\lib into architecture dependent library tree
Installing D:\soInline\_Inline\lib\auto\modSV\modSV.dll
  Finished "make install" Stage

  Starting Cleaning Up Stage
  Finished Cleaning Up Stage

Finished Build Compile Stage

SV = IV(0xc39248) at 0xc3924c
  REFCNT = 1
  FLAGS = (PADMY,IOK,pIOK)
  IV = 123
SV = IV(0xc39248) at 0xc3924c
  REFCNT = 1
  FLAGS = (PADMY,IOK,pIOK)
  IV = 1

&lt;/c&gt;&lt;/spoiler&gt;

&lt;p&gt; The resulting directory structure &lt;spoiler&gt;&lt;c&gt;$ tree -f -a _Inline
_Inline
|-- _Inline/build
|   `-- _Inline/build/modSV
|       |-- _Inline/build/modSV/INLINE.h
|       |-- _Inline/build/modSV/MYMETA.json
|       |-- _Inline/build/modSV/MYMETA.yml
|       |-- _Inline/build/modSV/Makefile
|       |-- _Inline/build/modSV/Makefile.PL
|       |-- _Inline/build/modSV/blib
|       |   |-- _Inline/build/modSV/blib/arch
|       |   |   |-- _Inline/build/modSV/blib/arch/.exists
|       |   |   `-- _Inline/build/modSV/blib/arch/auto
|       |   |       `-- _Inline/build/modSV/blib/arch/auto/modSV
|       |   |           |-- _Inline/build/modSV/blib/arch/auto/modSV/.exists
|       |   |           |-- _Inline/build/modSV/blib/arch/auto/modSV/modSV.bs
|       |   |           `-- _Inline/build/modSV/blib/arch/auto/modSV/modSV.dll
|       |   |-- _Inline/build/modSV/blib/bin
|       |   |   `-- _Inline/build/modSV/blib/bin/.exists
|       |   |-- _Inline/build/modSV/blib/lib
|       |   |   |-- _Inline/build/modSV/blib/lib/.exists
|       |   |   `-- _Inline/build/modSV/blib/lib/auto
|       |   |       `-- _Inline/build/modSV/blib/lib/auto/modSV
|       |   |           `-- _Inline/build/modSV/blib/lib/auto/modSV/.exists
|       |   |-- _Inline/build/modSV/blib/man1
|       |   |   `-- _Inline/build/modSV/blib/man1/.exists
|       |   |-- _Inline/build/modSV/blib/man3
|       |   |   `-- _Inline/build/modSV/blib/man3/.exists
|       |   `-- _Inline/build/modSV/blib/script
|       |       `-- _Inline/build/modSV/blib/script/.exists
|       |-- _Inline/build/modSV/dll.base
|       |-- _Inline/build/modSV/dll.exp
|       |-- _Inline/build/modSV/modSV.bs
|       |-- _Inline/build/modSV/modSV.c
|       |-- _Inline/build/modSV/modSV.def
|       |-- _Inline/build/modSV/modSV.o
|       |-- _Inline/build/modSV/modSV.xs
|       |-- _Inline/build/modSV/modSV_def.old
|       `-- _Inline/build/modSV/pm_to_blib
|-- _Inline/config-MSWin32-x86-multi-thread-5.014001
`-- _Inline/lib
    `-- _Inline/lib/auto
        |-- _Inline/lib/auto/def_pl_38b1
        |   |-- _Inline/lib/auto/def_pl_38b1/def_pl_38b1.bs
        |   |-- _Inline/lib/auto/def_pl_38b1/def_pl_38b1.dll
        |   `-- _Inline/lib/auto/def_pl_38b1/def_pl_38b1.inl
        |-- _Inline/lib/auto/def_pl_4ff5
        |   |-- _Inline/lib/auto/def_pl_4ff5/def_pl_4ff5.bs
        |   |-- _Inline/lib/auto/def_pl_4ff5/def_pl_4ff5.dll
        |   `-- _Inline/lib/auto/def_pl_4ff5/def_pl_4ff5.inl
        `-- _Inline/lib/auto/modSV
            |-- _Inline/lib/auto/modSV/.packlist
            |-- _Inline/lib/auto/modSV/modSV.bs
            |-- _Inline/lib/auto/modSV/modSV.dll
            `-- _Inline/lib/auto/modSV/modSV.inl

18 directories, 35 files

&lt;/c&gt;&lt;/spoiler&gt;
&lt;p&gt; The _Inline/build directory usually gets cleaned up, but not for notdef.pl 
&lt;p&gt; notdef.pl also NAME's the module, so its name doesn't change, but def.pl doesn't NAME the module, so a name is derived from  the filename  (def.pl) and the md5 sum of the c-source code
&lt;spoiler&gt; &lt;c&gt;
$ cat _Inline\lib\auto\def_pl_4ff5\def_pl_4ff5.inl
md5 : 4ff5a29496365b6167324b7d80efb321
name : def_pl_4ff5
version : ""
language : C
language_id : C
installed : 0
date_compiled : Thu Nov 22 21:58:12 2012
inline_version : 0.5
ILSM : %
    module : Inline::C
    suffix : dll
    type : compiled
Config : %
    apiversion : ?
    archname : MSWin32-x86-multi-thread
    cc : gcc
    ccflags : " -s -O2 -DWIN32  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing
 -mms-bitfields"
    ld : g++
    osname : MSWin32
    osvers : 5.1
    so : dll
    version : 5.14.1

&lt;/c&gt;&lt;/spoiler&gt;
&lt;p&gt; Now, can two copies of notdef.pl run simultaneously? Lets see
&lt;p&gt; First cleanup &lt;c&gt; $ rm -rfv _Inline &lt;/c&gt;
&lt;p&gt; And one copy will trip over the other and die  , the other will continue normally &lt;spoiler&gt;&lt;c&gt;
$ perl -le " system 1, $^X, q,notdef.pl, for 1,2 "

$ validate Stage
Starting Build Preprocess Stage
get_maps Stage
Finished Build Preprocess Stage

Starting Build Parse Stage
validate Stage
Starting Build Preprocess Stage
get_maps Stage
Finished Build Preprocess Stage

Starting Build Parse Stage
Finished Build Parse Stage

Starting Build Glue 1 Stage
Finished Build Parse Stage

Starting Build Glue 1 Stage
Finished Build Glue 1 Stage

Starting Build Glue 2 Stage
Finished Build Glue 2 Stage

Starting Build Glue 3 Stage
Finished Build Glue 1 Stage

Starting Build Glue 2 Stage
Finished Build Glue 2 Stage

Starting Build Glue 3 Stage
Finished Build Glue 3 Stage

Starting Build Compile Stage
  Starting "perl Makefile.PL" Stage
Finished Build Glue 3 Stage

Starting Build Compile Stage
  Starting "perl Makefile.PL" Stage
Writing Makefile for modSV
Writing Makefile for modSV
Writing MYMETA.yml and MYMETA.json
Can't open Makefile for input: No such file or directory
 at notdef.pl line 8.
BEGIN failed--compilation aborted at notdef.pl line 8.
Writing MYMETA.yml and MYMETA.json
  Finished "perl Makefile.PL" Stage

  Starting "make" Stage
  ...
&lt;/c&gt;&lt;/spoiler&gt;
&lt;p&gt; Now I'm not sure what scenario davido is talking about in the OP, but I hope this helps
&lt;P&gt; FWIW, def.pl/notdef.pl are derived from [id://928011]/[id://989450]</field>
<field name="root_node">
1005169</field>
<field name="parent_node">
1005212</field>
<field name="reputation">
5</field>
</data>
</node>
