![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
zyxerr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.7.2008 Репутация: 2 Всего: 2 |
1) нужно в один файл вносить много изменений. Причем, выходит так, что делать это можно только в несколько проходов. Сейчас я после одного прохода печатаю во временный файл. Затем открываю это временный файл, еще один проход и сохраняю в другой временный. Но т.к. проходов много (5), то это очень неудобно. Скажите, есть ли такой модуль, который помогает реализовать подобное?
2)
как узнать какой порядковый номер имеет $_ при переборе массива? |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Уважаемый zyxerr,
1. Какой объем данных Вы обрабатываете? Если он небольшой, то можно грузить весь файл в массив (или переменную), производить необходимые обработки и сохранять в файл только конечный результат. Если объем большой, то, скорее всего, без промежуточного сохранения не обойтись (зависит от действий, выполняемых на каждом проходе). 2. использование $_ в списке foreach - мысль крайне неудачная с точки зрения прозрачности кода. Если нужны индексы элементов массива, надо использовать цикл for по индексам, добавив необходимое значение в конец массива перед циклом. -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
zyxerr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.7.2008 Репутация: 2 Всего: 2 |
ginnie,
1. объем 50 mb на файл. Т.е. лучше использовать массив (в принципе, я к тому же пришел, но есть сложности с обработкой массива) 2. ясно. у меня обльшое количество функций, которые используют ".." if (1..5) # с первой по пятую строку или if (/Приложение (\d+)(?{$mapnum=$1;$prilnum=$1+1})/ .. &justif) #начиная с приложения (создавая переменные), до выровненного по ширине параграфа. немного неясно как перенести конструцию if (1..5) на чтение из массива? |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
2. перенести просто
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
zyxerr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 17.7.2008 Репутация: 2 Всего: 2 |
ginnie,
спасибо! выручили |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: нет Всего: 31 |
В чём заключаются сложности? По идее, при чтении из файла происходит та же обработка массива (одна строка файла - один индекс массива) ![]() -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |