develooper Front page | perl.beginners | Postings from April 2008

new Thread cannot work

Thread Next
From:
happytown277
Date:
April 17, 2008 23:33
Subject:
new Thread cannot work
Hi, buddies.
The code below can't work on my WindowsXP with SP2:

===============
#!/usr/bin/perl

	use Thread qw/async yield/;

	my $var = 0;

	sub abump {
		lock $var;
		if ($var == 0) {
			yield;
			$var++;
		}
	}

	my $t1 = new Thread \&abump;
	my $t2 = new Thread \&abump;

	for my $t ($t1, $t2) {
		$t->join;
	}

	print "var is $var\n";
===============
It show me this information below after I run the code:
        "Undefined subroutine &threads::new called at E:\test\learnperl
\thread.pl line 15."

And line 15 is:
        my $t1 = new Thread \&abump;

I test the code under Linux, but the result is ways:
"var is 0";

So, what is wrong?

BTW: the code is one example of "Programming Perl" (third edition).
And it is in chapter "Threads".

===============
Thanks anyway in advance.

Best wishes

happytown277


Thread Next


Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About