#!/opt/perl-5.8.2/bin/perl -w
use strict;
use Thread::Queue::Any;
my $value = 1234;
my $queue = Thread::Queue::Any->new;
$queue->enqueue( $value );
my ($returned_value) = $queue->dequeue;
printf "We have returned %i\n", $returned_value;
####
#!/opt/perl-5.8.2/bin/perl -w
use strict;
use threads;
use Thread::Queue::Any;
my $queue = Thread::Queue::Any->new;
my $prod_thread = new threads(\&producer);
my $cons_thread = new threads(\&consumer);
$prod_thread->join;
$cons_thread->join;
sub producer {
my $value = 1234;
$queue->enqueue( $value );
$queue->enqueue( undef );
}
sub consumer {
while( my($returned_value) = $queue->dequeue ) {
printf "I have been returned: %i\n", $returned_value;
}
}
####
I have been returned: 1234
Use of uninitialized value in printf at ./2.pl line 23.
I have been returned: 0
####
#!/opt/perl-5.8.2/bin/perl -w
use strict;
use threads;
use Thread::Queue::Any;
my $queue = Thread::Queue::Any->new;
my $prod_thread = new threads(\&producer, $queue);
my $cons_thread = new threads(\&consumer, $queue);
$prod_thread->join;
$cons_thread->join;
sub producer {
my $queue = $_[0];
my $value = 1234;
$queue->enqueue( $value );
$queue->enqueue( undef );
}
sub consumer {
my $queue = $_[0];
while( my($returned_value) = $queue->dequeue ) {
printf "I have been returned: %i\n", $returned_value;
}
}
####
I have been returned: 1234
Use of uninitialized value in printf at ./3.pl line 25.
I have been returned: 0