#!/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"; }