Помогите ламерку... похожего топа не нашёл решил сюда запостить...
Проблема: надо написать скрипт на перле, который:
- в данной директории показывает список папок в ней (только в ней - во влженных не надо) и их размер (соответственно с подпапками считать);
- показывал бы тоже самое, но только размер файлов (во всей папке с подпапками) считал бы не для всех файлов, а только по заданной маски - например выдать размер всех файлов *.doc каждой подпапки в данной папке.
Сам в перле начинающий... надыбал скрипт на форуме, видоизменил (пока только для 1-го случая) - но что-то не пашет:
Код:
#! perl -w
use strict;
sub dir_ls {
my $save_dir;
my $root = shift;
local *DIR_LS;
opendir DIR_LS ,$root;
while (my $file = readdir (DIR_LS) ) {
next if $file =~ /^\\.\\.?$/;
print "$root/$file\\n";
if (-d "$root/$file") {
$count_d++;
dir_ls ("$root/$file");
} else {
$dir_size += (stat("$root/$file"))[7];
$count_f++;
print "$count_f";
}
}
print "\\n\\nTotal -\\nDirs: $count_d\\nFiles: $count_f\\nSize: $dir_size\\n";
}
opendir FDIR, ".";
while($nm = readdir FDIR){
next if ($nm eq ".");
next if ($nm eq "..");
$stat = 0;
$count_f = 0;
$count_d = 0;
$dir_size = 0;
dir_ls ($nm);
}
closedir FDIR;
типа пишет : "Global symbol "$count_d" requires explicit package name" для всех переменных - что не так!? Заранее спасибо, если кто поможет.... ну а если посоветуют ещё и конструкцию для 2-го варианта (чтобы размер файлов по маске считал0 - то будет вообще счастье! Зараенее спасибо!