in reply to grep confusion
The code you posted should work. I think the items you believe should be duplicates are not: the data at the end of the string makes them different: "Root/file\0\0" ne "Root/file\0". I think the bug lies in your unpacking, or that you need to do some regexing or similar to remove the irrelevant junk on the end of the items of @array.