ok, ah these are the subroutines, what i did i broke everything down in pieces that way it would be easier for me to work with them and once one subroutine worked i left it alone and focused on the other part here are some subrotines. and if this isn't good i'll just print out the whole file, or code
#This gets how many directories i have
sub numberofdir() {
my $key = shift;
my $handle;
my $line;
my $file;
my $count;
opendir($handle, $key) or return;
while($line = readdir($handle)) {
if (open($file, "$key\\$line")) {
close($file);
}elsif($line ne "." && $line ne "..") {
$count++;
$count +=numberofdir("$key\\$line");
}
}
closedir($handle);
return $count;
}
# number of files in all directories
sub numfiles() {
my $key = shift;
my $handle;
my $line;
my $count;
my $file;
opendir($handle, $key) or return;
while($line = readdir($handle)) {
if(open($file, "$key\\$line")) {
$count++;
close($file);
}elsif($line ne "." && $line ne "..") {
numfiles("$key\\$line");
}
}
$filesinalldir{"$key\\$line"} = $count;
closedir($handle);
}
#this gets the smallest directory size
sub smallfilecount() {
my @filecount;
$filecount[0] = 30;
my $keys;
foreach $keys ( keys %filesinalldir){
if ($filesinalldir{$keys} < $filecount[0]) {
$filecount[0] = $filesinalldir{$keys};
$filecount[1] = $keys;
}
}
return @filecount;
}
sub largefilecount() {
my @filecount;
$filecount[0] = 30;
my $keys;
foreach $keys ( keys %filesinalldir){
if ($filesinalldir{$keys} > $filecount[0]) {
$filecount[0] = $filesinalldir{$keys};
$filecount[1] = $keys;
}
}
return @filecount;
}
#gets the sizes of the dir by adding all the files together
sub sizeofdir() {
my $key = shift;
my $file;
my $line;
my $handle;
my $filesize;
my @sizefile;
my $sum;
my $keys;
opendir($handle, $key) or return;
while($line = readdir($handle)) {
if(open($file, "$key\\$line")) {
$filesize = -s("$key\\$line");
push @sizefile, $filesize;
close($file);
}elsif ($line ne "." && $line ne "..") {
sizeofdir("$key\\$line");
}
}
foreach $keys ( @sizefile ) {
$sum += $keys;
}
$dirsize{$key} = $sum;
closedir($handle);
}
#gets the sizes of the dir by adding all the files together
sub sizeofdir() {
my $key = shift;
my $file;
my $line;
my $handle;
my $filesize;
my @sizefile;
my $sum;
my $keys;
opendir($handle, $key) or return;
while($line = readdir($handle)) {
if(open($file, "$key\\$line")) {
$filesize = -s("$key\\$line");
push @sizefile, $filesize;
close($file);
}elsif ($line ne "." && $line ne "..") {
sizeofdir("$key\\$line");
}
}
foreach $keys ( @sizefile ) {
$sum += $keys;
}
$dirsize{$key} = $sum;
closedir($handle);
}