В Perl совсем почти не разбираюсь, возникла срочная задача исправить работающий скрипт.
Прошу помочь тех кто в этом разбирается, т.к. задача тривиальная. Разбираться самому с языком уйдет много времени, а это критично. Нужно вставить кусок кода в цикл.
есть переменная email, есть каталоги /var/spool/imap/user/$email
в данном каталоге нужно выбрать все файлы по шаблону, пример 164458. (т.е. произвольное кол-во цифр и в конце точка) и посчитать их суммарный объем в байтах, поместив итоговую сумму в переменную used.
Примерно так:
$path = "/var/spool/imap/user";
opendir(DIR, $path);
foreach (readdir DIR) {
next
unless (/^\d+\./);
$total_size += (stat("$path/$_"))[7];
}
closedir DIR;print "Total Size: $total_size\n";
а как исключить несуществующий $path ?
чтобы вот такого не было:
readdir() attempted on invalid dirhandle DIR at ./usage.pl line 56.
>а как исключить несуществующий $path ?
>чтобы вот такого не было:
>readdir() attempted on invalid dirhandle DIR at ./usage.pl line 56.банально проверяйте что возвращает opendir
почитать можно здесь
perldoc -f opendir