in reply to Identical Files to Symbolic Links

while(@fnames) { my $f = shift @fnames; next if(-l $f); for my $f2 (@fnames) { next if(-l $f2);

Correct me if I'm wrong, but it seems to me that you are simply ignoring all existing symlinks. If that is the case, then why not eliminate them from the original list? E.g.

@fnames = grep { ! -l $_ } @fnames;
We're building the house of the future together.