Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexei Vi. Baikalov                  2:5020/400     11 Jul 2001  10:31:09
 To : All
 Subject : Re: Вытаскивание даты. Hарод подскажите!
 -------------------------------------------------------------------------------- 
 
 
 > Тебе письма надо вытащить или таки даты распечатать?
 > Сформулируй сначала задачу. Вполне возможно что просто
 > ничего делать не надо и есть готовое решение.
 
 Мне нужно создать массив из писем, идентифицировать каждое письмо по дате и
 сабджекту и оставить самое
 свежее письмо с определенным сабджектом.
 
 > > #!/usr/bin/perl
 > > print "Content-type: text/html\n\n";
 > > open (FILE,"</var/mail/nobody") || die "$!";
 > > @strings = <FILE>;
 >
 > И машина уходит в глубокий беспросветный swap через
 > некоторое время торжественно отбрасывая корку по
 > причине нехватки пямяти.
 
 Мож я что-то и не так делаю, но машина никуда не уходит и более того вполне
 быстро "отпинывается" от
 поставленной задачи.
 
 > > close FILE;
 > > $i = -1;
 > Это что за мистическое чудо?
 
 Единственное что я придумал на тот период (думал недолго).
 
 > > for $string (@strings) {
 > >         ++$i if ($string =~
 > > /^From\s[\w,\-,\.]+\@[\w,\-,\.]+\.\w{2,3}\s[A-Z][a-z]{2}\s{2}\d{1,2}\s\d{2}:
 > > \d{2}:\d{2}\s\d{4}$/);
 > Жуть. Что собственно хотелось проверить? '\nFrom '
 > однозначно определяют начало письма.
 
 А вот тут ты однозначно не прав!!!! В /var/mail/user в "теле" одного письма
 содержится как минимум две
 конструкции \nFrom.
 
 > >         $mail[$i] .= $string;
 > push @mail, $string;
 
 Вот об этом я забыл, спасибо.!!! Это значительно упростит алгоритм. Hужно будет 
 на досуге переписать.
 
 > > }
 > > for $mail (@mail) {
 > >         $maildate = $mail;
 > >         $maildate =~
 > > /[A-Z][a-z]{2}\s{2}\d{1,2}\s\d{2}:\d{2}:\d{2}\s\d{4}/m;
 >
 > У меня такое подощрение, что эта проверка ничего не делает :-)
 
 Вот в этом и проблемма была. Забыл все в скобки взять!
 ($maildate) = $mail =~
 /([A-Z][a-z]{2}\s[A-Z][a-z]{2}\s{2}\d{1,2}\s\d{2}:\d{2}:\d{2}\s\d{4})/m;
 
 > Дык ты сам сначала объясни чего именно ты хочешь.
 
 Hу я вроде понятно обяснял!? :))
 
 > Если просто напечатать даты - то достаточно сказать
 
 Смотри выше!
 
 > perl -ane 'print "$F[6]-$F[3]-$F[4]\n" if $F[0] eq "From"' < /var/mail/nobody
 > безо всяких страшилок на ночь :-)
 
 Так жить неинтересно 8-)_)
 
 --- ifmail v.2.15dev5
  * Origin: Enisey Infosystems (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Вытаскивание даты. Hарод подскажите!   Alexei Vi. Baikalov   11 Jul 2001 10:31:09 
 Re: Вытаскивание даты. Hарод подскажите!   Alexei Vi. Baikalov   11 Jul 2001 10:57:37 
Архивное /ru.perl/9149c3fed880.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional