#!/opt/coolstack/bin/perl -w use strict; use warnings; use threads; use Thread::Queue; my $file = "logfile.log"; my $queue = Thread::Queue->new() or die "$!"; my $thr = threads->create( sub{ my $q = shift; my $line; open(my $fh,">>", $file) or die "Cant open file $! [$file]"; print $fh "$line\n" while $line = $queue->dequeue(); }, $queue ); my @thrs; push @thrs , threads->create(sub{ $queue->enqueue(threads->tid ."> Log Message: $_") for (1..100); }) for (1..10); $_->join for @thrs; $queue->enqueue(undef); # End Logger Thread $thr->join; exit;