I haven't used threads before, but I found the following in perldoc threads for Perl 5.8.3 (typo corrected):
The context (scalar or list) of the thread creation is also the context for join(). This means that if you intend to return an array from a thread, you must use "my ($thread) = threads->new(...)", and that if you intend to return a scalar, you must use "my $thread = ...".
Now that I think about it, it kinda has to be that way. It can't use the context for the join call, because that's too late. The called routine has to be able to invoke wantarray from the moment it's called and get the right result.
In reply to Re: Is returning a list broken when using threads?
by Errto
in thread Is returning a list broken when using threads?
by beable
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |