note
BrowserUk
<blockquote><i>i am sorry if i am wrong about crash. the reason, i said perl crashed was because i got a message window</i></blockquote>
<p>That is kind of important information to have omitted from your post.
<p>The good news is that I have reproduced your problem and have a solution for you.
<p>The culprit is [mod://Win32::OLE]. Even this simple threaded code that [use]s that module in the main thread, fails in exactly the same when when you try to join a thread. Even if that thread makes no use of the module:<code>
#! perl -slw
use strict;
use threads;
use Win32::OLE qw[ in with ];
my $thread = async {
sleep 3;
};
$thread->join;
</code>
<p>However, if you [require] [mod://Win32::OLE] in the thread(s) where you want to use it, it works fine:<code>
#! perl -slw
use strict;
use threads;
#use Win32::OLE qw[ in with ];
my $thread = async {
require Win32::OLE; Win32::OLE->import( qw[ in with ] );
sleep 3;
};
$thread->join;
</code>
<p>So the solution to your immediate problem is to comment out the [use] [mod://Win32::OLE] line at the top of your program and replace it with the [require] and import as shown above in the top of your thread subroutine.
<p>Try that and see how you get on.
<div class="pmsig"><div class="pmsig-171588">
<hr />
<font size=1 >
<div>With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'</div>
<div>Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.</div>
<div>"Science is about questioning the status quo. Questioning authority". </div>
<div>In the absence of evidence, opinion is indistinguishable from prejudice.
</div>
</font>
</div></div>
1018589
1018662