On 7 June 2016, 12:27:26, Bob Cronin wrote: > So, I am looking for ideas on how to choose the first VALID address on that > list rather than just the first address. As usual the selection logic is in > the middle of a huge pipeline with all sorts of things going on, so it will > be important to not disturb the timing in any way.
Assuming you have one record with the list of addresses to probe, your filter should simply output the first one in the list that meets the criteria, right? There are a few trigger words in that. The "first in the list" suggests a pipe with "juxtapose count" to collect all valid ones from the list, and ignore all but the first one. Disadvantage is that you evaluate all of them, even when the first was good enough. If that is a concern (like when you would look up the address through DNS) a feedback loop with "fanintwo" would be appropriate. Or a sipping pipeline. \ *: | o: fanout | spec number 1.10 r | j: juxtapose count | unique 1.20 first | substr 21-* | *: \ o: | split , | .. sift bad ones out | j: As for sifting out invalid addresses from the list, you'd probably use some rough selection stages to drop the bogus stuff. Add more over time or after sifting through some history data. Things like this are pretty effective: | locate fs @ ws . substr w2 of f2 /* @ plus 2 qualifiers */ Sir Rob the Plumber