in reply to Looping with SOAP::Lite fails

sleep(60); # wait an hour
That waits 1 minute, not one hour. Refer to sleep. To wait an hour:
sleep(3600); # wait an hour