由于项目需要,自己动手写了一个用Perl统计指定文件目录中普通文件个数的小程序。这个小程序没有依赖任何第三方模块,完全是用最基本的Perl代码实现的。使用时只需要指定一个目标目录即可。
在编码过程中,有两个地方(第4行和第14行附近)本来打算用rindex,但是发现在不用的平台下,rindex的表现不太一样,考虑到移植性,就写了个稍微繁琐一点的控制逻辑。
如果有什么错误或可以改进的地方,请留言。
- use strict;
- use warnings;
- my $dir = $ARGV[0];
- my $last_char = substr($dir,(length $dir)-1);
- if($last_char ne "/"){
- $dir = $dir."/";
- }
- my $fileNumber = 0;
- &cycle($dir);
- print "File Number:\t$fileNumber\n";
- sub cycle{
- my $subDir = $_[0];
- my $last = substr($subDir,(length $subDir)-1);
- if($last ne "/"){
- $subDir = $subDir."/";
- }
- my @list = glob $subDir."*";
- foreach(@list){
- if(-f $_){
- $fileNumber++;
- } elsif(-d $_){
- &cycle($_);
- }
- }
- }