vishi has asked for the wisdom of the Perl Monks concerning the following question:
Hi Gurus,
Yes - I know, what I am trying to do may have been discussed a lot but I couldn't find what I am trying to do.
Here's what I need. I have a list of servers, which I have stored in an array. These servers aren't all that reliable, so I need to make sure I can connect to them before using them in my code. Obviously, I cannot stick to one working server and keep using it, as it's not good load balancing. What I want is something like this:
my connectionStatus = "down"; @listOfServers=("abc","def","lmn","stu","xyz"); while (connectionStatus eq "down") { my $randomServer = $listOfServers[rand @listOfServers]; #Try to connect to $randomServer if ($connect == 1) { connectionStatus = "up"; } else { connectionStatus = "down"; } ## Need to Delete the server in $randomServer from @listOfServers and +pick one randomly and try again ## }
I read about using hashes and grep, but is there something simpler? I dont think I can use splice here as I dont know the index of the random element I just picked...
Any Suggestions?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Pick random element from array and delete it
by daxim (Curate) on Jul 17, 2012 at 08:13 UTC | |
|
Re: Pick random element from array and delete it
by frozenwithjoy (Priest) on Jul 17, 2012 at 08:17 UTC | |
|
Re: Pick random element from array and delete it
by Ratazong (Monsignor) on Jul 17, 2012 at 08:16 UTC | |
|
Re: Pick random element from array and delete it
by Khen1950fx (Canon) on Jul 17, 2012 at 09:25 UTC | |
|
Re: Pick random element from array and delete it
by cheekuperl (Monk) on Jul 17, 2012 at 08:15 UTC |