use Amazon::SQS::Simple; use Thread::Pool; my $sqs = new Amazon::SQS::Simple($AWS_ACCESS_KEY_ID, $AWS_SECRET_ACCESS_KEY); my $q = $sqs->GetQueue($QUEUE_URL); my $msg; while (1) { $msg = $q->ReceiveMessage(); if ($msg != "") { #New message found, process message print $msg->MessageBody(); } else { print "No new messages.\n" } #Polling interval sleep(2); }