TestEmailValidator
TestEmailValidator - валидатор email адресов. Тестовое задание для REG.RU.
Использование: perl email_validator.pl filename
Не используйте для реальных задач! Является тестовым заданием для REG.RU.
Прогон тестов: prove -v t/*
Отчет о покрытии тестами: coverage.html
Так как валидация email адреса в универсальном виде является нетривиальной задачей, а также учитывая тестовый характер программы, для наглядности приняты следующие допущения и умолчания:
- Проверяется только отсутсвие недопустимых символов, существование адреса или домена, а также возможность доступа пользователя к ящику не проверяется.
- В email адресе допустим только один символ "@".
- Не проверяется наличие недопустимых последовательностей ".." и подобных, недопустимых завершающих символов в частях адреса.
- В локальной части допустимы только цифры, заглавные и строчные латинские буквы, а также символы ".", "_", "-", "+", кроме первого символа.
- В имени домена(для доменов с не ASCII символами, после преобразования в punycode) допустимы только цифры, строчные латинские буквы, а также символы "." и "-".
- Проверяется только общая длина доменного имени, максимальная - 255 символов, минимальная - 3 символа, длина каждой части не проверяется.
- В случае невалидных данных, для наглядности, функции возвращают строку "INVALID". Т.е. фактически валидный адрес "INVALID@example.com" будет считаться невалидным.
- Если во входящих данных есть один и тот же домен с символами unicode и преобразованный в punycode (например "пример.рф" и "xn--e1afmkfd.xn--p1ai"), он будет считаться разными доменами и будет посчитан отдельно.
Copyright (C) Vladimir V. Predekha.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Vladimir V. Predekha. <>