use strict;
use File::Find;
my $dir = shift;
my ($with, $without);
print "Counting files in $dir\n";
# This is the default on Linux
$File::Find::dont_use_nlink = 0;
find(sub { $without++ }, $dir);
$File::Find::dont_use_nlink = 1;
find(sub { $with++ }, $dir);
print "With \$File::Find::dont_use_nlink = 0: $without files found\n";
print "With \$File::Find::dont_use_nlink = 1: $with files found\n";
I ran this on a mounted iso9660 disc like this (note if the
disc has RockRidge extensions then it works properly!) :-
$ ./file_find_test.pl /mnt/cdrom
Counting files in /mnt/cdrom
With $File::Find::dont_use_nlink = 0: 29 files found
With $File::Find::dont_use_nlink = 1: 1300 files found
This was on Linux 2.2.17 with perl 5.00503 with the standard
File::Find that comes with the distribution
I agree with tye's comment here - $File::Find::dont_use_nlink should be 1
on all platforms - the slowdown isn't worth the incompatibilities. |