![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Secandr |
|
||||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
подскажите, что сделать, что бы работала рекурсия в перле?
Добавлено @ 09:14 Вот код без рекурсии, работает вполне великолепно:
Добавлено @ 09:15 сразу убъю двух зайцев - напишу про рекурсию и про работу с деррикториями. |
||||
|
|||||
dimes |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
my $h;
opendir ($h,"dir"); ........ либо local *h; opendir (h,"dir"); ....... |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
dimes
спасибо. |
|||
|
||||
y0sh1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
Проблема: надо написать скрипт на перле, который:
- в данной директории показывает список папок в ней (только в ней - во влженных не надо) и их размер (соответственно с подпапками считать); - показывал бы тоже самое, но только размер файлов (во всей папке с подпапками) считал бы не для всех файлов, а только по заданной маски - например выдать размер всех файлов *.doc каждой подпапки в данной папке. Сам в перле начинающий... надыбал скрипт на форуме, видоизменил (пока только для 1-го случая) - но что-то не пашет: Код:
типа пишет : "Global symbol "$count_d" requires explicit package name" для всех переменных - что не так!? Наск я понимаю переменную не определил!? Заранее спасибо, если кто поможет.... ну а если посоветуют ещё и конструкцию для 2-го варианта (чтобы размер файлов по маске считал0 - то будет вообще счастье! Зараенее спасибо! |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
В одном топике, один вопрос. Это правила форума. Попробуй этот код.
Удачи. Это сообщение отредактировал(а) korob2001 - 26.8.2004, 11:34 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
y0sh1 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
Вобщем после дня эксперементов наваял я довольно простенький (и наверно всё же кривоватый) скрипт:
Он проходит по заданной папке и выводит объём всех подпапок + отдельно объём файлов в корне указаной папки... Теперь решил прикрутить помимо подсчёта объёма всей подпапки ещё и объём файлов в ней по маске - например *.mp3 - по предложеной на форуме кнструкции:
Соответственно в скрипт написанный выше добавил:
Но что-то не катит... просто записывает в $dir_size_mp3 какое-то число... !?!?!? В чём может быть дело!? Это сообщение отредактировал(а) y0sh1 - 26.8.2004, 18:35 |
||||||
|
|||||||
ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: нет Всего: 9 |
читаем CookBook ![]() -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
y0sh1 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
Как при рекурсивном просмотре директорий более наглядно сделать "индикатор хода работы" так сказать - ну что бы видно было что процес идёт... в своём "сканере" пока сделал так:
те типа выводится на консоль каждая 10 папка\файл (все выводить слишком много)... причём на новой строке, думал прикрутить на одной:
но в таком варианте что-то совсем ничего не вырисовывалось... Может у кого есть более удачные варианты реализации !? |
||||
|
|||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
|
|||
|
||||
y0sh1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
Secandr
прости не совсем понял... \r - это я хотел выделить... код конечно:
Это сообщение отредактировал(а) y0sh1 - 30.8.2004, 13:22 |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
вообще лучше писать что-то типа \r\n или <br> если в хтмл.
А вообще один топик - один вопрос |
|||
|
||||
y0sh1 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
Secandr
типа это выведет список всех поддир и файлов в одной строке!?
те если вопрос в русле уже созданой темы, то всё равно надо открывать новую!? |
||||
|
|||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
тема была не про то как читать дирректорию, а про то как превратить глобальный указатель в локальный!
Добавлено @ 13:47 P.S. Открывай новый топик и подробно опиши проблему. |
|||
|
||||
y0sh1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
Secandr
сорри если не туда запости, но искал по описанию темы, а там сказано чётко:
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |