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


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to