in reply to Implementing Custom ThreadPool

Thread::Pool module, but since that has the implementation for older thread model

What made you think so? It seems passes tests on modern perls without any problems.

every thread is getting its own copy of $pool

That is because $pool is not shared, you use threads::shared but aren't really using it. Have also a look onto Thread::Queue.