$/
- это разделитель входной записи, настройка local $/="\n>";
заключается в том, что вход разбивается на запись, заканчивающуюся \n>
, после chomp окончание удаляется, однако />*(\S+)/
может не совпадать, так как >
используется из предыдущей записи.
из FASTA wikipedia строка, начинающаяся с >
, является комментарием и не всегда может быть идентификатором. Однако в случае, если это всегда так, следующее может исправить.
my ($id,$seq) = $seq =~ /^>*(.*)\n(\S+)/;
Thunderbird имеет файл, названный popstate.dat, который содержит UID, метка времени (эпоха) и флаг. Флаг указывает на действие, которое Thunderbird должен выполнить для связанного сообщения.
Очевидно, Thunderbird на самом деле не работает как, я описал выше. Я думаю, что Thunderbird делает следующее. Это отправляет POP3 UIDL
команда для получения списка UID сохранила на сервере POP. Это затем выдерживает сравнение, этот список к UID сохранил в popstate.dat
. Любой UID, которые уже не находятся в popstate.dat
должны быть получены новые сообщения. Команда UIDL ранее возвратила номер сообщения и связанный UID. Thunderbird должен затем сделать POP3 RETR
команда с помощью номера сообщения, связанного с UID, который это еще не получило. Thunderbird должен также посмотреть на флаг в popstate.dat
и примите любые меры для связанного сообщения. Например, флаг d
говорит Thunderbird удалять связанное сообщение. f
отметьте означает, что Thunderbird имеет только усеченную часть сообщения и должен получить полное сообщение.
В какой-то момент Thunderbird обновляет popstate.dat
с новыми сообщениями. Я думаю, что это происходит в пакетном обновлении до popstate.dat
после того, как все действия были завершены. Таким образом, если существует 10 новых сообщений для получения, popstate.dat
не обновляется, пока все 10 сообщений не были получены.
Я думаю, что моя проблема находится на сервере. По-видимому, наша инфраструктура, обновленная до новой версии сервера POP и нового UIDs, была присвоена на новой версии. Мой popstate.dat
имел весь старый UIDs. UIDL к новому серверу POP отправляют список 5000 + UIDs, в котором Thunderbird не имел перечисленным popstate.dat
. Так, Thunderbird продолжил загружать все 5000 + сообщения. Если бы новый сервер POP сохранил старый UID затем, то Thunderbird видел бы, что я уже получил большинство 5000 + сообщения и просто загружу тех, что я не имел. Я думаю, что большинство людей в моей организации использует Outlook и не использует POP3, и однако обновление версии было сделано к серверу POP, не вызвал проблему для тех пользователей. Кажется, что некоторый дополнительный уход был необходим, чтобы гарантировать, что новый сервер имел тот же UIDs как старый сервер.Век живи - век учись!
Существует расширение для Thunderbird, чтобы найти дубликаты и удалить их. например, на основе идентификатора сообщения (который обычно сгенерирован исходным отправителем почты и таким образом не изменился с Вашим обновлением инфраструктуры).
Который там версия программного обеспечения сервера?
http://courier.sourcearchive.com/documentation/0.60.0-2/pop3dserver_8c-source.html
00718 ** UIDL сообщения является действительно просто своим именем файла до первого символа MDIRSEP
Можно ли быть, просто должен заменить первую часть UIDL в popstate.dat к новым?