Заметки о Перле

Perlgament — о блоге

In Uncategorized on 25/11/2010 at 19:51

Здравствуйте, дорогие читатели. Хочу рассказать немного о цели создания данного блога.

Совсем недавно я увлекся изучением Перла (позвольте писать его название на русском языке).  В связи с тем, что Перл обладает множеством интересных особенностей, возникло желание записывать все свои открытия. Подумал и решил, что блог — самое удобное средство для этого, ведь заодно можно и попрактиковаться в письменном изложении) Для названия блога я выбрал немного измененное слово «Пергамент»: «ПерЛгамент», — что символизирует суть блога — заметки о Перле.

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

Еще раз — это блог новичка в Перле, который пишет для новичков в Перле. Буду благодарен за любые комментарии к содержанию блога как от новичков, так и от опытных программистов.

Добро пожаловать!

Работа с хэшами — часть 1

In Uncategorized on 07/12/2010 at 23:11

Как было сказано в заметке про переменные в Перле, хэш — это тот же массив, но в котором вместо индексов (0, 1, 2, …) используются назначаемые пользователем ключи.

Перед нами простой хэш:

%a = ('раз', 'два', 'три', 'четыре');

В любом хэше ключ и значение идут парой, то есть ключу «один», соответствует значение «два», а ключу «три» — значение «четыре».

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

%a = (
    'раз', 'два',
    'три', 'четыре'
);

Теперь каждая пара ключ-значение находится в отдельной строке и вы точно можете сказать, что «три» — это ключ, а «четыре» — его значение.

Но можно записать еще наглядней:

%a = (
    'раз' => 'два',
    'три' => 'четыре'
);

Замечание: видите, в последней строке перед закрывающей скобкой мы не поставили запятую, так как она не обязательна. Но лучше ее поставить, вдруг вы решите дописать еще одну строку со значениями, тогда все равно придется добавлять запятую.

Обратиться к элементу объявленого хэша можно так:

print $a{'раз'};

В результате на экран будет выведено: два
То есть значение элемента хэша с ключом «раз».

Добавить элемент в хэш можно простым присваиванием:

$a{'вес'} = 20;

Удалить элемент из хэша можно функцией delete():

delete $a{'вес'};

При этом полностью удаляется пара: и ключ, и значение.

Замечание: Поскольку обращение к элементам хэша происходит только по ключу, то каждый ключ должен быть уникален, чтобы избежать неоднозначностей. Если же в хэше присутствуют несколько элементов с одинаковыми ключами, то учитываться из них будет тот, который был объявлен позже всех, к остальным будет невозможно обратиться.

Проверить существование элемента с определенным ключом можно с помощью функции exists():

if ( exists $a{'море'} ) {
    print "Элемент с ключом 'море' равен $a{'море'}";
}
else {
    print "Не существует элемента с ключом 'море'";
}

Другие операции над хэшами будут рассмотрены в следующей заметке.

Работа с массивами

In Uncategorized on 03/12/2010 at 22:09

Массив — это список, состоящий из скалярных элементов. Перед именем переменной, которая является массивом, идет знак «@».

Объявить массив можно следующим образом:

@m = ("раз", "два", "три"); #массив из трех элементов

В качестве элементов массива может быть любая скалярная единица (а скаляром, как мы помним по заметке про переменные в Перле, может быть число или строка символов).

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

@m = qw/ раз два три /; #читать код стало немного легче

Обращение к элементам массива происходит по индексу. В Перле индексы начинаются с 0. Например, чтобы вывести второй элемент нашего массива, используем такую строку:

print $m[1];

Не забываем, что выводим мы скалярное значение, поэтому перед именем массива мы используем символ скалярной переменной «$».

Для добавления нового элемента в массив можно просто указать элемент с новым индексом и присвоить ему какое-то значение:

$m[7] = "новый элемент";

При этом элементы массива с индексами 3,4,5,6 будут иметь значения undef, так как они еще не были определены.

Для добавления нового элемента в конец массива используется функция push:

push @m, "восток"; #то же самое, что и $m[8]="восток"

Для удаления последнего элемента массива используется функция pop:

pop @m; #удаляет последний элемент массива

При этом функция pop возвращает значение удаляемого элемента, чем можно воспользоваться:

$name = pop @m; #удаляем последний элемент и сохраняем его в $name

Для добавления и удаления элементов, но из начала массива, используются аналогичные функции unshift и shift:

unshift @m, "новый"; #новый первый элемент
$first = shift @m; 

Итак, мы рассмотрели основные операции над массивами в Перле. Осталось только взглянуть на то, как выводят массивы на экран. Это очень просто:

print @m;
print "@m";

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

Отслеживать

Get every new post delivered to your Inbox.