Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите подрихтовать код 
:(
    Опции темы
BlackPhantom
Дата 19.3.2009, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Поскольку сам в перле совсем ни бум-бум, прошу помощи у "зала" ...
есть текстовый файл с блоками:

 #lease 122.24.1.85 {
 #  starts 3 2007/11/07 01:56:06;
 #  ends 3 2007/11/14 01:56:06;
 #  binding state active;
 #  next binding state free;
 #  hardware ethernet 00:15:f2:e0:69:4d;
 #  uid "\001\000\037\320\003V\221";
 #  client-hostname "Sasha";
 #}

и есть процедура, которая вычитывает эти блоки из файла, и сопоставляет IP машины с ее hostname.
Код

  sub StartIp2Name() {
     my $body = Readdhcpd_leases();
     while ($body =~ m/\nlease (.*?)\s?\{(.*?)\}/sig) {
     my $ip = $1;
     my $tmp = $2;
     $tmp =~ m/\n(.*)?hostname\s"(.*)?"/;
     my $host = $2;
     $host = "\u\L$host";
     $hIP{$ip} = $host;
         }
     }



проблема в том, что пока в блоках нет строки  #  uid "\001\000\037\320\003V\221";
выходной файл форматируется нормально, но как только она появляется, сбивается форматирование, и получается "каша"... подскажите что тут надо подправить. Заранее спасибо...
PM MAIL   Вверх
amg
Дата 19.3.2009, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Если пытаться обойтись минимальной правкой, то так:
$tmp =~ m/\n(.*?)hostname\s"(.*?)"/ or next;

Хотя, возможно, or next лишнее, если было задумано, чтобы, в случае отсутствия hostname в хэш заносилось все содержимое блока.


Это сообщение отредактировал(а) amg - 19.3.2009, 15:31
PM MAIL   Вверх
BlackPhantom
Дата 19.3.2009, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



спасибо, помогло !!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1217 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.