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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как выделить body из письма-массива? подскажите с шаблоном 
:(
    Опции темы
frost84
Дата 19.9.2008, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



доброго времени суток.
подскажите пожалуйста, как выделить body в массиве-письме, если известно что body и header разделены пустой строкой или 2-мя пустыми строками

использую Net::POP3;
...
$mess=$pop->login($user,$pass);
...
for ($i=1; $i<=$mess; $i++) {
     $message=$pop->get($i); #получаю текущее письмо
            foreach $head (@$message) {
                   $subj=$1
                   if ($head=~/Subject:\s(.*)/);  #выделяю Subject
                   ...
                   }
}

а вот выделить все body и сложить например в отдельный массив не получается(
PM MAIL   Вверх
shamber
Дата 19.9.2008, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



frost84, а специальные модули использовать не хотите?
PM MAIL Jabber   Вверх
frost84
Дата 19.9.2008, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



можно и модули, но желательно без них. 
ведь это можно сделать с помощью регэкспов.. только хотелось бы понять как
PM MAIL   Вверх
shamber
Дата 19.9.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Добавьте счетчик пустых строк,
проверяйте пустая ли строка, если да то увеличиваем
если счетчки равен двум, то следующее это body smile
Код

if($head=~/^\r?\n$/){
       # увеличиваем счетчик

    }


Это сообщение отредактировал(а) shamber - 19.9.2008, 15:00
PM MAIL Jabber   Вверх
frost84
Дата 19.9.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



понятно спасибо попробую и так тоже, а пока сделал так

foreach (@$message) {
    if ( !/^\n+|\r+/ ) {push (@arr,$_); $_ = undef;} else {last};
    }

в @$message остается body, а в @arr header.

интересно а насколько корректно делать $_ = undef ? 
значение становится неопределенным, но остается в массиве..
PM MAIL   Вверх
amg
Дата 20.9.2008, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(frost84 @  19.9.2008,  17:58 Найти цитируемый пост)
значение становится неопределенным, но остается в массиве..
Чтобы оно не оставалось в массиве:
Код
while ((my $line = shift @$message) !~ /^$/) {
    push @arr, $line;
}


PM MAIL   Вверх
frost84
Дата 20.9.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


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

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


 




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


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

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