LINUX统计文件个数

LINUX统计文件个数

LINUX统计文件个数
有一个目录A,
目录A下面有5个目录B,C,D,E,F
我想通过perl编程实现查看B,C,D,E,F目录下面分别由多少个文件。

想得到以下结果
B目录下面有5个文件
C目录下面有5个文件
D目录下面有6个文件
E目录下面有5个文件
F目录下面有5个文件

不知道怎么实现,请高手帮忙
opendir呀。。
然后循环文件夹下的文件把它列出来。。
或者计数。
for($i=0;$i<=$filehandle;$i++){
print $i;
}
完整一点,递归遍历目录的方法
my $dir = 'e:\temp';
my ($fcount,$scount) = CountDir ($dir);
print "目录[$dir]及其子目录共有文件 $fcount 个, 子目录 $scount 个\n";

sub CountDir {
my $dir = shift;
my @Subs = ();
my ($FTotal, $STotal) = (0, 0);
my ($FCount, $SCount) = (0, 0);

return unless $dir;
chomp $dir;
$dir =~ s/\\/\//g;
chop $dir if ($dir=~/(\/)$/);
opendir (local $DIR, $dir) or die "Can't open $dir\n";
my @files = grep { not /^\.{1,2}\z/ } readdir $DIR;
closedir $DIR;

foreach my $file (@files) {
$file = "$dir/$file";
if (-f $file){
$FCount ++;
}
else {
push (@Subs, $file) if (-d $file);
$SCount ++
}
}

if ($SCount>0) {
print "目录[$dir]共有文件 $FCount 个,子目录 $SCount 个\n";
foreach my $subdir (@Subs) {
($FTotal,$STotal) = CountDir($subdir);
$FCount += $FTotal;
$SCount += $STotal;
}
}
else {
print "目录[$dir]共有文件[$FCount]个\n";
}
return ($FCount, $SCount);
}

exit;