For me the solution with module is more readible. It is more in line with our thinking - it says:
- take the 'uniq' operator from the library
- apply it to the list
The other solution says:
- create a hash by assigning 1 to every element of the list
- list the keys of the hash
It requires much greater thinking loop to understand that this is indeed the solution to the problem at hand. You need to think about how hashes are created, and what is listing their keys - with the library solution you only need to think if the 'uniq' sub really does filter unique values out of the list, but the name of the function is mnemonic enough that it's kind of automatic.