Perl

Perl в настоящее время является одним из наиболее употребительных интерпретируемых языков программирования, хотя два других языка, обсуждаемых в этом разделе, Python и Ruby, за последние несколько лет догоняют его по популярности. Perl, как и следует из его "говорящего" названия, изначально разрабатывался для работы с большими объемами текста: для чтения информации, ее разбора и манипулирования текстовой информацией осмысленным образом. Таким образом, когда широкое распространение получила "мировая паутина" с ее языком разметки гипертекста, язык Perl в комбинации с CGI оказался уникальным средством, отлично приспособленным для работы со всей этой информацией и манипулирования ею всеми возможными способами - от просто забавных до интересных и в высшей степени полезных. С этого момента популярность Perl как языка web-программирования начала стремительно расти.
Одним из наиболее важных преимуществ языка Perl является его фантастическая гибкость. Девизом Perl является высказывание "Theres More Then One Way To Do It", т. е. для решения абсолютно любой задачи существует множество различных путей, чем разработчики этого языка по праву гордятся. Пользуясь средствами Perl, квалифицированный программист действительно может творить чудеса. Но, наряду с этим, такая гибкость приводит к большому количеству неудобочитаемого кода, очень сложного в поддержке. Из-за этой особенности Perl и приобрел репутацию языка, на котором можно только писать. Правда же заключается в том, что хотя Perl позволяет создавать безобразный код, на самом деле на нем можно писать и очень элегантные программы. В действительности важно здесь то, что если вы столкнулись с проблемой, то Perl обычно предоставляет возможность ее разрешения. Например, представьте себе, что перед вами стоит задача упростить нумерацию строк в исходном коде. Вместо того чтобы нумеровать строки вручную, можно воспользоваться скриптом Perl.
Листинг 19.19. Скрипт Perl для автоматической нумерации строк исходного кода
Hi /usr/bin/perl - w
foreach my $file ( my $n = 0;
open I die "Sorry, $file cant be opened: $!"; open,- while ( $n++;
print NFILE sprinti, $_;
close OFILE; close NFILE;
Этому скрипту можно передать любое количество других скриптов в качестве аргументов командной строки, и он поочередно обработает их, автоматически введя порядковые номера в начало каждой строки и выведя результат в другой файл с тем же именем, предваренным префиксом num. Например, если этому скрипту передать его собственное имя, то на выходе будет получен результат.
Благодаря зрелости Perl, в нем накопилась внушительная коллекция библиотек кода, которая позволяет решить практически любую задачу. Именно это и является источником мощи данного языка. Кроме того, за годы существования Perl была создана система управления этими библиотеками, известная под названием полной архивной сети Perl, которая предоставляет удобный метод доступа к этим модулям из вашего кода. Для пользователей Mac OS X в CPAN включен ряд модулей Perl, предназначенных для манипулирования приложениями Apple, например, iTunes и iPhoto, а также для доступа к AppleEvents из кода на Perl. Реализовано и большое количество других возможностей.
Далее, для пользователей Mac OS X, заинтересованных в программировании на Perl, был создан проект Camel Bones, в котором сведен воедино ряд специфических библиотек Mac OS X/Perl, инфраструктур и модулей. Camel Bones позволяет разрабатывать интерфейсы Aqua для скриптов Perl и применять Perl в приложениях Cocoa вместо Objective - C.
В комплект поставки Leopard входит Perl v. 5.8.8, которая на момент написания этой книги была новейшей стабильной версией Perl1 обозримом будущем ожидается выход Perl 6, абсолютно новой и переработанной версии, обещающей не только улучшенный интерпретатор, но и множество обновлений языка как такового. Более подробную информацию о Perl лучше всего искать на официальном web-сайте: http:www.perl.org. Если вам нужна книга по Perl и вы являетесь абсолютным новичком в программировании, прочтите книгу Джеймса Ли "Beginning Perl, Second Edition" или Клинтона Пирса "Teach Yourself Perl in 24, Third Edition".