use strict; use warnings; use threads; use threads::shared; use Thread::Queue; my $queue = Thread::Queue->new; my %urls = (); share(%urls); my $url = 'http://www.perlmonks.org/'; my $visited = do { lock(%urls); $urls{$url}++ }; if (!$visited) { $queue->enqueue($url); }