while (1){ my $attempts = 1; my $max_attempts = 10; while ( !$imap->noop ){ print "Reconection retry $attempts..\n"; $imap->reconnect; if( $imap->IsConnected() ){ print "Reconnected succesfully!\n"; last; } else{ sleep 1; die "Impossible to reconnect: $@" if $attempts == $max_attempts; $attempts++; } } print "IMAP connected\n" if $imap->IsConnected(); }