Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: perl s replase не заменяет  (Прочитано 1701 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tremor

  • Автор темы
  • Участник
  • *
  • Сообщений: 212
  • Промышляю локальными сетями
    • Просмотр профиля
    • Компьютерные сети в Екатеринбурге
Re: perl s replase не заменяет
« Ответ #15 : 23 Декабря 2009, 13:20:04 »
ух ты жесть какая. спасибо, буду ковыряться.

Пользователь решил продолжить мысль 23 Декабря 2009, 21:07:40:
perl только линейно "добавляет" строки в файл при открытом на запись файловом дескрипторе. при совпадении строки в исходном файле мне надо изменить последнюю записанную строку в открытом на запись файле. все что я нашел по записи в файловый дескриптор это print и chomp. а можно ли обратится к открытому на запись файлу по номеру строки и поменять ту строку, или я могу  только тупо "аппендить" в файл?
сделать бы так s/a/b/, 66 OUT. Что то подобное возможно?
« Последнее редактирование: 23 Декабря 2009, 21:07:40 от tremor »

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: perl s replase не заменяет
« Ответ #16 : 24 Декабря 2009, 16:21:15 »
Я считаю, надо поменять алгоритм - писать строку в файл не сразу, а после анализа следующей прочитанной.

А на поставленный вопрос в голову приходит только функция seek
Но с ее помощью это все равно непросто.
В CPAN могут быть какие-то модули, облегчающие задачу.
« Последнее редактирование: 24 Декабря 2009, 16:41:51 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

Страница сгенерирована за 0.015 секунд. Запросов: 22.