I was having this error with the Mail::Box modules this time last year, so it appears testing has been broken, for dmake and MinGW, with command.com, at least under some conditions, for a year.
The test action on Win95 is constructed with a q{} inside a qq{}. In the Makefile, the lines for Encode are like this, $(NOECHO) $(PERLRUN) -e "exit unless -f shift; chdir 'Byte'; system q{$( MAKE) test $(PASTHRU)}" $(FIRST_MAKEFILE) which looks OK, but when run by dmake, they become, C:\perl\5.9.0\bin\MSWin32-x86-multi-thread\perl.exe -e "exit unless -f shift; chdir 'Byte'; system qC:\DMAKE-4.1PL1-WIN32\DMAKE.EXE" q-S" qtest" Makefile The curly braces have gone and a 'q' is being prepended and a '"' is being appended to each of the elements of the system call. If the q{} is replaced with a q[], the Makefile is like this, $(NOECHO) $(PERLRUN) -e "exit unless -f shift; chdir 'Byte'; system q[$( MAKE) test $(PASTHRU)]" $(FIRST_MAKEFILE) and the line that dmake runs is like this, C:\perl\5.9.0\bin\MSWin32-x86-multi-thread\perl.exe -e "exit unless -f shift; chdir 'Byte'; system q[C:\DMAKE-4.1PL1-WIN32\DMAKE.EXE -S test ]" Makefile I guess it is a dmakeism. *** MM_Unix.pm.orig 2003-11-17 10:15:00.000000000 +0800 --- MM_Unix.pm 2003-11-17 11:02:24.000000000 +0800 *************** *** 3836,3840 **** if ($Is_Win95) { ! push(@m, map(qq{\t\$(NOECHO) \$(PERLRUN) -e "exit unless -f shift; chdir '$_'; system q{\$(MAKE) test \$(PASTHRU)}" \$(FIRST_MAKEFILE)\n}, @{$self->{DIR}})); } else { --- 3836,3840 ---- if ($Is_Win95) { ! push(@m, map(qq{\t\$(NOECHO) \$(PERLRUN) -e "exit unless -f shift; chdir '$_'; system q[\$(MAKE) test \$(PASTHRU)]" \$(FIRST_MAKEFILE)\n}, @{$self->{DIR}})); } else { I don't know if the patch survived my cutting and pasting. -- Greg Matheson, Taiwan