use threads; my $user="xxx"; my $password="yyy"; sub my_thread_sub { my ($url)=@_; my $cookie=to_string ($url); # to string convert url to an acceptable filename my $WGET; if ( -e $cookie ) { open $WGET, "wget -q -O - -w 1 -T 1 -t 1 --load-cookies $cookie --user $user --password $password $url |"; } else { open $WGET, "wget -q -O - -w 1 -T 1 -t 1 --save-cookies $cookie --keep-session-cookies --user $user --password $password $url |" } local $/; $output=<$WGET>; ... return 0; } my @thrs; my @urls=qw("http://example1/" "http://example2/"); dontgo: my $i=0; foreach my $url (@urls) { $thrs[$i]=threads->new ("my_thread_sub",$url); $i++; } foreach my $thr (@thrs) { $thr->join; } sleep 3 goto dontgo; exit 0;