Я давно понял, что для автоматизации выполнения повседневных задач мне необходим какой-нибудь простой интерпретируемый язык с большой базой подпрограмм на все случаи жизни. В котором мне не придётся волноваться о выделении и освобождении памяти, указателях, грамотном ООП, синтаксических заморочках. Где не нужно продираться через многочисленные уровни абстракций, дабы понять в чём скрывается ошибка, насилуя трасcировщик и многократно перекомпилируя исходники.
В качестве такого языка я решил выбрать Perl. Благо, он позволяет большие вольности в оформлении программ, а книги по нему написаны простым и доступным языком. И поначалу всё было хорошо, пока я решал простенькие задачки и учебные примеры. Впрочем, никаких практических навыков подобное обучение не давало и все полученные знания быстро вылетали из головы. Тогда я решил начать делать то, ради чего и взялся за изучение Перла - решать повседневные задачи. Мне показалось, что это лучший путь для освоения нового языка.
Беда пришла оттуда, откуда я её совсем не ждал. Я решил, по старой привычке, создать несколько структур данных, исключительно в целях организации кода. Но никакой отдельной главы, им посвященной, я в книгах не нашёл. Копнув глубже, я обнаружил, что в качестве структур данных в Перле используются хеши, причём их синтаксис, применительно к сложным структурам, меня абсолютно не обрадовал. Поначалу, я решил плюнуть на структуры данных и попробовать местные объекты, благо им, таки, была посвящена отдельная глава. Но, как я и предполагал, объектами оказались те же хеши, оформленные особым образом. Возвращаясь к ним, я с ужасом, обнаружил местные ссылки и оператор разыменования. Так же я понял, что без хорошей зубрёжки и многочасового вдумчивого чтения мне никогда не понять в каких случаях этот оператор работает; когда в коде стоит употреблять фигурные, когда круглые, когда квадратные скобки, а когда ещё ставить перед ними волшебные слова; в какой ситуации вместо двойной кавычки стоит употреблять одинарную; когда перед именем хеша стоит ставить %, а когда $ и в каком случае эти два одинаковых имени будут относится к двум совершенно между собой не связанным структурам данных. В принципе - всё это в книгах описано и через недельку я, наверное, в этом бы разобрался, а через пару лет практики даже перестал бы совершать связанные с этим ошибки, но, нет уж спасибо...
Так что я решил забить на Perl т.к. перестал понимать в какой ситуации его использование будет предпочтительнее чем применение связки C+Lua, тем более, что сложность их освоения, похоже, сопоставима. Большие надежды я возлагаю на Лисп, в особенности, если научусь вызывать из него программы с аргументами и парсить их вывод. И, возможно, стоит таки попробовать Питон. Я не ругаю Perl. Просто жалко, что его изучение, поначалу напоминавшее добрую сказку, под конец превратилось в какое-то жёсткое порно.