Автор Тема: чтение переменной построчно [только сильно не бейте]  (Прочитано 3776 раз)

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

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Hi,

Есть такая переменная:
$host=`/usr/bin/host -t mx $hostname`;
вот ее содержимое, к примеру:
yandex.ru mail is handled by 10 mx2.yandex.ru.
yandex.ru mail is handled by 0 mx1.yandex.ru.

Из этих строк нужно последовательно извлеч
mx2.yandex.ru.
затем
mx1.yandex.ru.
я это делаю так:
@host= split (/\\s+/, $host);
print "@host[6]\\n";
но так я получу только последнюю строку, а как получить все?

Извиняюсь за ламерский вопрос, только начал изучать perl.
Спасибо.

Оффлайн Kannabismus

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Сначала разбейте вывод на строки, потом для каждой строки ищите host.
Например:

push @hosts, /\\s+([\\w\\.]+)$/ for split("\\n"$host)
; print 
"hosts: "join(", ", @hosts)

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Спасибо.

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
появился еще один вопрос:
для некоторых хостов нет MX записи, и при запросе:
host -t mx 555.ru
ничего не возвращается.
как можно отследить эту пустую строку?

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
# host -t mx 555.ru
555.ru has no MX record
#

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
arto
какой продвинутый у вас host

Всем спасибо, я уже решил свою задачу.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28