Перл плох своим развращающим влиянием на неокрепшую психику молодежи. Разврат связан в первую очередь с регекспами. Скажите, как вы проверяете тип переменной (например, является ли переменная целым числом)?
Второе, как я сказал уже - отсутствие исключений. Да-да, я знаю про eval. Но скажите, как мне понять, что вывалилось в $@? Правильно, регексп. То бишь, опять гланды удаляем через анальное отверстие.
LamerOk, я использовал Perl, зная Питон. Но мне за это хорошо платили :)
>> Правильно, регексп. То бишь, опять гланды удаляем через анальное отверстие.
> Очень гибкий и удобный подход. А вот описывать десятки классов исключений - действительно через задницу.
А это даже не клиника. Это морг.
Простой пример: я использую, скажем, SQL-сервер через DBI. Какой конкретно - я не знаю (строка подключения и атрибуты прописаны где-нибудь в конфиге, который пользователь софтины в принципе может корежить). Какой существует общим метод определения, какая ошибка произошла при соединении? Где гарантия, что какой-нибудь SQL-сервер не ответит по-китайски, к примеру? Где стандарт на вывод сообщений об ошибках, чтобы их корректно парсить? Конечно, можно юзеру вывалить ошибку на экран в виде, as is, но пользователь может хотеть, например, русские сообщения, а SQL-сервер вещает по испански... Я, конечно, немного утрирую, но смысл остается такой. Так что регекспы - это не "гибкий и удобный подход", это вообще не подход в данной задаче. И Перл не имеет способа решения ее. Вообще.
Почему PHP - это клиника? Тривиально. Он провоцирует программиста на худший из возможных подходов к созданию веб-сайтов - создание страниц без шаблонов. Для сайта В.Пупкина это сойдет, но уже сейчас это плохо работает даже для мелкой конторы. Кроме того, у PHP всегда были проблемы с безопасностью.
> Простой пример: я использую, скажем, SQL-сервер через DBI. Какой конкретно - я не знаю (строка подключения и атрибуты прописаны где-нибудь в конфиге, который пользователь софтины в принципе может корежить). Какой существует общим метод определения, какая ошибка произошла при соединении? Где гарантия, что какой-нибудь SQL-сервер не ответит по-китайски, к примеру?
Где гарантия, что в других языках он не выбросит исключение неизвестного типа?
> Где стандарт на вывод сообщений об ошибках, чтобы их корректно парсить?
Где стандарт на типы выбрасываемых исключений?
> Конечно, можно юзеру вывалить ошибку на экран в виде, as is, но пользователь может хотеть, например, русские сообщения, а SQL-сервер вещает по испански...
Бред. Кто тебя заставляет это делать? Непустая $@ - лишь признак, что произошло что-то нехорошее, а не развернутое сообщение об ошибке.
> Я, конечно, немного утрирую, но смысл остается такой. Так что регекспы - это не "гибкий и удобный подход", это вообще не подход в данной задаче. И Перл не имеет способа решения ее. Вообще.
В таком виде как ты описал - способа решения не имеет ни один язык в мире.