No, I tried adding say 1 after fork() and threads->create() and it didn't print it.
But now with Strawberry 32bit version it seems to work, this is bizarre. All I did differently is I installed WWW::Mechanize, which I use, with cpan. And it came with Strawberry built-in. At least perl -MWWW::Mechanize "print 1" printed 1. I don't understand at all what's happening. Things don't seem to work consistently at all.
So you say that it does/did not fork() at all? Have you investigated with a simple test script to see if forks happen, how many and under what conditions with what system messages? Can the OS limit the number of forks? Note that Windows does not have a native fork() and so Perl emulates that somehow. See perlfork for the caveats and warnings. (I am exclusively working with Linux so I can't help with anything else)
Yes, it didn't fork at all. I tried a test script and both, the fork and threads worked. In my program, it was the first fork that failed. I couldn't even print the return value and it doesn't print any error messages on exit.
I tested now with Strawberry 64bit and I wasn't able to get it work. But I tried again starting with a fresh 32bit version at that still does work.