[Chicago-talk] array to hash and counting files
Jeremy Hubble
jhubble at core.com
Tue Dec 30 11:59:11 CST 2003
I have a series of directories that each have a number of
subdirectories with the same directory structure. I need to count the
number of files and directories in each subdirectory, and get a list of
all unique files.
Here is the code fragment I have (not tested yet):
Is there a more effecient way to:
1) Extract the unique list of files?
2) Use perl to replace the find commant?
Thanks,
Jeremy
my $d_count=0;
my $f_count=0;
my %map;
opendir (ED_DIR, $bdir);
@subdir = { /!^\./ && -d "$bdir/$_" } readdir(DIR);
foreach $d (@subdir) {
chomp $d;
my $dir = "$bdir/$d";
my @files = qx~find $bdir -type 'f' -print~;
my @dirs = qx~find $bdir -type 'd' -print~;
$d_count+=$#files+1;
$f_count+=$#dirs+1;
foreach $f (@files) {
$map{$f} = 1;
}
}
/dir/subdir1
/subdir2
/subdir3
....
More information about the Chicago-talk
mailing list