Итоги:
– Простые и компактные, а главное бесплатные программные пакеты интерпретации абсолютно для всех существующих платформ.
– Устойчивость системы от допускаемых программистами ошибок.
– Программный доступ в Internet.
– Встроенный удобный отладчик с опцией строго мониторинга за синтаксисом.
– Работа с электронной почтой.
– Многофункциональный язык с большим количеством настроек до самой перезагрузки операций.
– Поддержка сокетов, необходимых для связки клиент-серверов.
– Автоматизированная сборка-разборка HTML.
– Средства работы с OLE объектами (только с Win) и с базами данных.
– Несложная и переносимая на Mac, Win, Unix библиотека графики – Tk.
К недостаткам Perl можно следует отнести интерпретируемость и т что программа на нем “открыта”. То есть если Вы захотите склепать игру-викторину в стиле “Миллионер” или “Поле чудес”, будьте уверены, что игру такого плана без труда взломает любой пользователь.
Проблема решается комплияцией скрипта под Windows , однако лицензия Perl потребует от Вас открытости кода. Тем не менее, такое ограничение для серьезного программного обеспечения может стать проблемой.
Между прочим, win-компилятор придется покупать, т.к. он идет отдельной программой, не удивительно, что умельцы-хакеры уже успели написать на него декомпилятор.
Также остается нерешенный вопрос переносимости в Perl. Например, программистам, работающим в среде Unix, просто набрать и вызвать gfind и grep обращаясь в шелл, чем копаться в поисках аналогичной библиотечной (переносимой) функции на CPAN (стандартная библиотека Perl-модулей). В итоге, такой вызов вполне может “завалить” всю программу под Mac или Windows. Или бывает, что Win-программист по привычке воспользуется OLE-объектами, функцией работы с реестром и т.д., как рабочая программа станет просто-напросто “невыполнимой” в Unix.
Недостатком, вытекающим из отмеченного ранее достоинства, является “не строгое” отношение к ошибкам программистов. Если Вы не включите модули контроля (т.к. постоянное требование компилятора описать переменную или “противится” всяким экспериментам с указателями выводит из себя), то следующее обращение к указателю или строке вполне может привести к порче и неработоспособности данной переменной. Или “отрицательные” индексы массива, способные адресовать массив “с конца”? Такие вольности, если они не сделаны умышленно, не “завалят” программу.