I've had a similar problem with wperl (I think it has nothing to do with ActiveState - it fails on Strawberry as well). In my particular case it was an Open2 call that hanged wperl.
in reply to ActivePerl - perl.exe works, wperl.exe does not...
The workaround was to create a script which does nothing else but launches perl.exe without a window through create process with creation flag 'CREATE_NO_WINDOW'. You run this script via wperl.exe instead of your original prog.
Mine is a Win32 solution: I don't know whether any similar thing works on Unix/Linux or not.
The launching script:
The only modification to the original program itself that you include the following lines:
use Win32 qw(SW_HIDE);
From here on no window is created (not even for child processes opened with Open2) and the main program is safe since it is run via perl.exe.