lepetitalbert has asked for the wisdom of the Perl Monks concerning the following question:
Hello dear Monks
I'm trying to convert the following :
#!/usr/bin/perl use strict; use warnings; use threads; sub func { print "doing job ... \n"; sleep 1; } my @threads; foreach ( 1..2 ) { print "launching job\n"; push( @threads , threads->new( \&func )); } foreach my $thread ( threads->list() ) { my @command_output = $thread->join ; print "job done\n"; }
to something like
package myTest; sub new { my $item={}; bless $item; return $item; } sub myTestFunc { my $item = shift; print "doing job ... \n"; } 1;
#!/usr/bin/perl use strict; use warnings; use threads; use myTest; my @threads; foreach ( 1..2 ) { print "launching job\n"; my $test = myTest->new(); push( @threads , threads->new( $test->myTestFunc )); } foreach my $thread ( @threads ) { my @command_output = $thread->join ; print "job done\n"; }
this produces
Thread 1 terminated abnormally: Undefined subroutine &main::1
caused by $test->myTestFunc in threads->new( $test->myTestFunc ))
I understand that threads->new() is excepting a function ref (right ?)
But this kind of stuff must be possible !?
Thanks and have a nice day.
"There is only one good, namely knowledge, and only one evil, namely ignorance." Socrates
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: thread on method
by BrowserUk (Patriarch) on Nov 24, 2009 at 05:07 UTC | |
by lepetitalbert (Abbot) on Nov 24, 2009 at 10:51 UTC |
Back to
Seekers of Perl Wisdom