"Дмитрий Леонов. Использование Perl в интернет-технологиях" - читать интересную книгу автора @a = split(/:/, $s); # массив @a будет содержать три элемента - "abc",
"def", "ghi". Если не указан второй параметр, работа идет с переменной $_. Если не указан и первый параметр, используется образец /\s+/. Обратная функция - join - берет список значений и склеивает их, вставляя между ними строку-связку, переданную ей в первом параметре: $s = join(":", @a); Регулярные выражения являются, пожалуй, самым мощным средством Perl, предназначенным для обработки текстов, и в нашем кратком изложении мы далеко не исчерпали все их возможности. Пакеты, библиотеки, модули, классы и объекты Пакеты предназначены для разделения глобального пространства имен. По умолчанию все программы выполняются в пакете main, пока директива package не выбирает другой пакет. Для доступа к именам, описанным в другом пакете, используется синтаксис $ИмяПакета::ИмяПеременной. Модули представляют собой отдельные файлы, содержащие набор взаимосвязанных функций. Каждый модуль имеет внешний интерфейс и, как правило, описывает свои глобальные переменные и функции в отдельном пакете. К основной программе модули подключаются с помощью директив use и require. Директива use подключает модуль на этапе компиляции программы (хотя Perl формально и является интерпретируемым языком, непосредственно перед исполнением происходит компиляция исходных текстов программы), директива require загружает модуль во время выполнения. наподобие структур или классов в С++, но имеющихся в нем средств вполне достаточно для их довольно близкой имитации. Обычные структуры имитируются в Perl с помощью анонимных хэшей: $record = { NAME => 'record1', FIELD1 => 'value1', FIELD2 => 'value2', FIELD3 => 'value3', }; print $record->{FIELD1}; $records{$record->{NAME}} = $record; $records{"record1"}->{FIELD1} = 1; Классы в Perl представляют собой пакеты, а объекты - нечто (обычно все та же ссылка на анонимный хэш), приведенное с помощью функции bless к классу. Внутри пакета обычно существует функция-конструктор, которая выполняет всю эту работу. Типичный конструктор выглядит как sub new { my $class = shift; # получаем имя класса my $self = {}; # выделяем новый хэш для объекта bless($self, $class); # приводим хэш к классу $self->{FIELD1} = "value1";# инициализируем поля объекта |
|
|