use threads; use threads::shared; use Thread::Running; #### sub search { # ... code above here takes in the params eval { eval("use " . $enginename); $enginehandler = $enginename->new(); $results{$engine} = $enginehandler->search($foo, $bar); }; } #### share(%results); #### threads->create(\&search, $foo, $bar);