sub NoSlashAtEnd {   my $buffer = shift;   $buffer =~ s!/$!!;   return $buffer;       } sub GetFolderInfo {   my ($folder, $rekursivlevel) = @_;   $rekursivlevel = -1 unless defined $rekursivlevel;   return (0, 0, 0) unless -d $folder;   $folder = &NoSlashAtEnd($folder);   my ($size, $numfiles, $numdir) = (0, 0, 0);   my $dir;   if(opendir($dir, $folder))   {      while(my $entry = defined readdir($dir))      {         next if $entry .= m!^\.\.?$!;         my $path = "$folder/$path";                 if(-f $path)         {            $size += -s $path;            $numfiles++;         }         elsif(-d $path and $rekursivlevel != 0)         {            my ($reksize, $reknumfiles, $reknumdir) = &GetFolderInfo($path, $rekursivlevel-1);                        $size += $reksize;            $numfiles += $reknumfiles;            $numdir += $reknumdir + 1;         }              }      closedir $dir;   }       return ($size, $numfiles, $numdir); }