Jakub Narebski [off-list ref] writes:
Not true. Link to directory is both -d $_ and -l $_, so
return unless (-d $_ || (-l $_ && -d readlink($_)));
is not needed.
I think you mis-read what I said. I first wondered why you did
not say "return unless -d _" and wrote (seemingly more
inefficient) "return unless -d $_". The comment is to clarify
why '$' is needed.
In other words, after this setup:
$ rm -fr d dl
$ mkdir d
$ ln -s d dl
you do not see an output from this:
$ perl -e 'lstat "dl"; print "is-dir\n" if -d _;'
but you do from this:
$ perl -e 'lstat "dl"; print "is-dir\n" if -d "dl";'