At 04:01 PM 9/4/02 -0500, Greg Oliver wrote: >Hi, I am just diving into Perl and threads especially. > >I am using Thread::Pool, Thread::Use, Thread::Tie and LWP::UserAgent >in my script. LWP::UserAgent is local to the subroutine with Thread::Use > >which is a 3 level hash of hashes. No problem, I can use it just fine >anywhere in the program. I cannot Thread::Tie is like I can any of >my other %s or @s though. Single hashes and all arrays seem to work as >expected.
You would need to tie each of the sub hashes seperately, that should work. If someone could point me to a way to have this automatically happen, I would like to know. >The script basically runs through a city/domain/engine combination >and gets a result for each. It is "supposed" to store the results >into the main %Results so I can print it out after all of the LWP >requests are complete, but as soon as the has is updated (and I can >check and see it is) and the subroutine is finished for that >particular combination, the hash entry disappears. > >I can remove all threading points from the program, run it synchronous >(very slow), and all the problems go away. > >I have tried: > >o Passing %Results as a reference to the subroutine >o Passing nothing, and just trying to update the global >o Running $pool->waitfor (get results, and can update from main > portion of program outside the subroutine, but is just like > running non-threaded if I have to wait :) > >I have not successfully been able to Thread::Tie the %HoHoH as well. Probably >related and something I do not know how to do. Also, I know I can use POE >for this, but what is the fun in that? I am just trying to learn a little, >but sometimes it gets a bit confusing. Could you post me some of your code, offline if you will, so that I can have a look at what exactly is going wrong, either in the code, the documentation, my head and/or your head? ;-) I have programs running that do exactly what you describe (well, what I can gather from your description ;-) Liz
