in reply to Re: Best method to eliminate substrings from array
in thread Best method to eliminate substrings from array
Some comments:
-
In your code here, an input part number group item is treated as a subset of another group only if it is anchored at the left end of the larger group. E.g., the items 7K3377|3H5788 8W1152 4P0489|2757803 added to the list of test input data will not be excluded from output, but, of course, 2N0472|6N8595 2N0472 will be.
In the OPed code, the if-block
if ($strChain ne $_ && index($_, $strChain) >= 0) { $found = true; last; }
implies that a part number group is a subset if it is found anywhere (per the >= comparison) in the larger group (and is not identical to the larger group). - Additionally, the OPed code implies that duplicated items in the input appear unchanged in the output (if they are not part of any larger group), e.g., 123 ... 123 in the input would appear as 123 ... 123 in the output. In your code, these items would be made unique.
- Also, the OPed code would produce output in the same order as the input items (less subsets), although this implied requirement seems less imperative than the others. Because it's taken directly from a hash, your code will produce output in random order.
Give a man a fish: <%-{-{-{-<