#!/usr/bin/perl use strict; use warnings; use Thread::Pool; my $pool = Thread::Pool->new({workers => 10, do => \&do, monitor => \&monitor}); my @jobs = ('A' .. 'Z'); my $count; for (@jobs) { print $count++, "\n"; $pool->job($_); } sub do { my $letter = shift; print "begin: $letter\n"; for (1 .. 10000000) { my $x = $_ ^ 2; } print "end: $letter\n"; return "$letter is back\n\n"; } sub monitor {print shift}