Чтение онлайн

на главную - закладки

Жанры

Язык программирования Perl

Шохирев Михаил Васильевич

Шрифт:

С помощью прагмы use locale в программе включается действие национальных системных установок для некоторых встроенных функций, например, при работе со строками на русском языке:

use locale;

По ходу изучения материала следующих лекций будут рассмотрены другие полезные прагмы, а в лекции 13 будет описано применение use для подключения внешних модулей.

Материал этой лекции иллюстрирует упоминавшийся в лекции 1

принцип TMTOWTDI: в Perl часто существует несколько синонимичных конструкций, предоставляющих автору программы возможность наиболее точно выразить свой замысел в привычном для него стиле. Perl - демократичный язык, и каждый пишет на нем так, как ему удобнее и привычнее: начинающий программист использует простые средства, писавший ранее на другом языке найдет для себя знакомые конструкции, а опытный Perl-хакер может углубиться в синтаксические дебри. За многие годы использования Perl целой армией программистов в нем сложились устойчивые выражения (idioms, идиомы), подобные пословицам и поговоркам в естественных языках. Для примера можно привести некоторые из них:

# 1. Выполнять бесконечный цикл

for (;;) # читается "forever" - "всегда"

{ } # тело бесконечного цикла

# 2. Открыть файл или аварийно завершить программу

open FILE or die; # "открой файл или умри!"

# 3. Читать строки из входного потока и печатать их,

# используя буферную переменную по умолчанию

while (<>) { print; }

# 4. Присвоить переменной значение по умолчанию

# только, если ее значение не определено

$variable ||= $default_value;

В большинстве следующих лекций будут встречаться и другие идиоматические выражения, придающие специфический колорит программам на языке Perl.

Каждый автор волен оформлять свои программы в удобном для него стиле. Perl не навязывает разработчику никаких ограничений. Общепринятые рекомендации по стилю оформления программ изложены в разделе стандартной документации, который можно просмотреть с помощью команды:

perldoc perlstyle

В соответствии c устоявшимися традициями, типичная программа на языке Perl скорее всего будет выглядеть примерно так:

# вводные комментарии к программе

use strict; # включение дополнительной...

use warnings; # ... диагностики

# use Env; # подключение нужных модулей (см. лекцию 13)

# package main; # объявление пакета (см. лекцию 13)

my $message = 'Привет!'; # объявление переменных и

print $message; # запись алгоритма программы

# описание форматов отчета (см. лекцию 10)

# описание подпрограмм (см. лекцию 12)

__END__ # необязательное обозначение конца программы

В этой лекции рассмотрены синтаксические правила составления

предложений на языке Perl, изучив которые, можно начинать писать законченные программы. Многообразие синтаксических конструкций позволяет автору, исходя из своих предпочтений, применять любые из конструкций-синонимов для выражения особенностей алгоритма задачи. Дополнительные сведения о синтаксисе предложений, снабженные многочисленными примерами, можно узнать, выполнив Perl-утилиту вывода документации:

perldoc perlsyn

Лекция 5. Списки и массивы

В этой лекции рассмотрены списки - один из основных типов данных в Perl. Представлять данные в виде списков и массивов - очень естественно для Perl-программистов. А богатые средства работы со списками, массивами и срезами массивов, приведенные в этой лекции, предоставляют разработчику широкие возможности по обработке данных.

Цель лекции: познакомиться со списками и массивами, освоить возможности работы со списочными данными в Perl, включая встроенные функции и операции в списочном и скалярном контекстах.

Помимо уже изученных скалярных данных, в Perl широко применяется другой тип данных - списки. Если скаляры представляют в программе единичные объекты реального мира, то списки, как и в жизни, позволяют представить набор объектов, однотипных или совершенно разных, которые для решаемой задачи удобно рассматривать как единое целое (например, "список работников", "перечень документов", "опись товаров" и так далее). В то же время, всегда можно обратиться к любому элементу списка и обработать хранящуюся в нем информацию нужным образом, при необходимости повторяя действия для каждого элемента массива.

Итак, список - это упорядоченная последовательность отдельных скалярных данных в виде одного программного объекта. Способом представления значения списка в программе является списочный литерал, который записывается в виде последовательности значений, разделенных запятыми и заключенных в круглые скобки. Вот примеры списочных литералов:

(256, 512, 1024, 2048, 4096) # список из 5 чисел

('John', 'Paul', 'George', 'Ringo') # список из 4 строк

("Perl", 5.8) # список из строковых и числовых значений

Для записи списка текстовых строк, состоящих из одного слова, предусмотрена специальная форма списочного литерала, в которой после ключевого слова qw (сокращение от quoted words - "слова в кавычках") в скобках записываются строки, не заключенные в кавычки и разделяемые пробельными символами. В качестве скобок могут использоваться традиционные символы: , {}, //, \\, [] , <> и даже просто парные символы, такие как !! или ##. Например:

qw(это очень удобно) # вместо ('это', 'очень', 'удобно')

qw/John Paul

George Ringo/ # список слов, расположенный на 2 строках

Элементами списочного литерала могут быть не только строки и числа, но также скалярные переменные и выражения. Пустой список не содержит элементов и представляется списочным литералом без значений (одними круглыми скобками).

('One', $x, $x+$y-$z, 2*5) # список литералов и выражений

Поделиться:
Популярные книги

Аргонавты

Дионис Антонио
Старинная литература:
мифы. легенды. эпос
5.00
рейтинг книги
Аргонавты

Кодекс Охотника. Книга XXV

Винокуров Юрий
25. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга XXV

Красный священник

Юань Е
4. Повелитель тайн
Фантастика:
фэнтези
эпическая фантастика
5.00
рейтинг книги
Красный священник

Мозаика

Линдс Гейл
Детективы:
политические детективы
5.00
рейтинг книги
Мозаика

Скорость побега. Чародей поневоле

Сташеф Кристофер
Фантастика:
научная фантастика
5.00
рейтинг книги
Скорость побега. Чародей поневоле

Криндж. Тетралогия

Мамбурин Харитон Байконурович
Криндж
Фантастика:
героическая фантастика
юмористическая фантастика
постапокалипсис
фэнтези
5.00
рейтинг книги
Криндж. Тетралогия

"Фантастика 2023-193". Компиляция. Книги 1-24

Федоров Алексей Евгеньевич
Фантастика 2023. Компиляция
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Фантастика 2023-193. Компиляция. Книги 1-24

История катаклизма. Книга вторая. Пятый Аспект. Часть 1

Дженкинс Кассандра
Фантастика:
фэнтези
5.00
рейтинг книги
История катаклизма. Книга вторая. Пятый Аспект. Часть 1

Жизнь и удивительные приключения Нурбея Гулиа - профессора механики

Никонов Александр Петрович
Документальная литература:
биографии и мемуары
публицистика
5.75
рейтинг книги
Жизнь и удивительные приключения Нурбея Гулиа - профессора механики

Газлайтер. Том 39

Володин Григорий Григорьевич
39. История Телепата
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
попаданцы
6.25
рейтинг книги
Газлайтер. Том 39

Побережье цифрового мира

Инин Дмитрий
2. Негодяй Аллара
Фантастика:
рпг
фэнтези
5.00
рейтинг книги
Побережье цифрового мира

Царь зверей не лев

Вагнер Йозеф
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Царь зверей не лев

Хроники странного королевства. Шаг из-за черты. Дилогия

Панкеева Оксана Петровна
73. В одном томе
Фантастика:
фэнтези
9.15
рейтинг книги
Хроники странного королевства. Шаг из-за черты. Дилогия

Профессия: попаданец. Книга 2

Ренгач Евгений
2. Профессия: попаданец
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Профессия: попаданец. Книга 2