in reply to Comparing Elements of Two Arrays

There's another kind of comparison that can be done on two paths, which is to see if they refer to the same file (or directory). This is especially useful when you have relative paths or paths that include symlinks, and you want to know whether they resolve to the same absolute path.
sub compare_paths { my($dev1, $inode1) = stat $_[0]; my($dev2, $inode2) = stat $_[1]; return unless defined $dev1 and defined $dev2; return $dev1 == $dev2 && $inode1 == $inode2; }
This returns true if the paths point to the same file, false (defined) if they don't, and undef if either stat fails (probably because the file doesn't exist).