Really? On FreeBSD 6.3, Perl v5.8.8:
$ ln -s i_scratch_your_back you_scratch_my_back
$ ln -s you_scratch_my_back i_scratch_your_back
$ cd you_scratch_my_back
cd: too many levels of symbolic links: you_scratch_my_back
$ perl -MData::Dumper -e '@s = stat("i_scratch_your_back"); print Dump
+er(@s)'; date
Tue Feb 3 07:31:40 PST 2009
$
Despite this pathological case, stat does not defeat the purpose of the OP which was to find out if two paths pointed to the same (non-symlink) file. lstat on the other hand would fail is_same if tested with a plain file and its corresponding symlink. |