Every reply you have received so far has a different interpretation of your requirements. If you are lucky, someone will correctly guess what you intend and post a solution. However, I recommend that you restate the problem in a way that we can all understand without guessing. Note that the word 'unique' can be ambiguous. It can mean 'values that only occur once' or 'the first occurrence of each value'. The function List::Util#uniq which you reference assumes the latter.