Many thanks for providing the updates. There is one further suggestion I would offer. When the mulext.exe file is called from within perl, the command line you generate is not capable of handling paths with embedded spaces. I suggest that all the paths used in the execution line be enclosed in double quotes. This will allow your utility to be used from anywhere and using any pathname for the various files.
Change all occurances of
$prgout = `$mulextpath $uopath $artfile $woffset $wout`;
to
$prgout = `"$mulextpath" "$uopath" $artfile $woffset "$wout"`;
Change all occurances of
$prgout = `$mulextpath $uopath $artfile $woffset $wout`;
to
$prgout = `"$mulextpath" "$uopath" $artfile $woffset "$wout"`;