|

CuTTer (icutter@mail.ru)
Perl для перцев
Xakep, номер #020, стр. 020-042-3
if ($a==$c) {print "2";}
if (not $a==$b) {print "3";}
На экране появится число 123. С данного момента ты должен хорошо оперировать числами.
Теперь нам надо обсудить и другую полезную команду: while. Это тоже цикл, но он немного отличается. Для ясности закодим скрипт
#!/usr/bin/perl
$a=5;
while ($a>=1){
print "a";
$a--;}
Программа должна выдать aaaaa, исходя из этого можно догадаться, что операторы, находящиеся в блоке while, выполнялись пять раз. То есть принцип команды while прост: выполнять блок операций, пока сравниваемые значения ($a и 1) дают "истина".
Массивы: Matrix has you
Все массивы - это переменные, которые состоят из списков. Список - упорядоченные скалярные данные. Каждый элемент массива - это одна скалярная переменная с независимым скалярным значением. Если тебе сложно представить, что такое массив, то прикинь мозгой, как выглядит математическая матрица. Представил? Если так, то будь уверен, что матрица не поимеет тебя! :)
Массивы должны начинаться с префикса @, а их имена могут совпадать с именем скалярных переменных. Теперь нам нужно научиться присваивать к массивам данные, работать с ними.
#!/usr/bin/perl
@a=("Kal","КиШ","SuXXX");
$a[3]="New"; # @a равен ("Kal","КиШ","SuXXX","New");
print $a[1];
Если запустить программу, то на экране появится КиШ. До этого массивы были рассмотрены, как единое целое, а здесь мы обратились к его отдельным участкам. При таком обращении символ @ заменяется на $, а нумерация элементов начинается с нуля. Когда мы написали строку $a[3]="New";, то мы добавили в массив четвертое значение, а командой print $a[1] мы вывели второй элемент.
Оператор foreach - это еще одна циклическая конструкция. Этому оператору присваивается какой-нибудь список, этот список значений по очереди присваивается скалярной переменной, выполняя блок кода. Вот как это выглядит:
@a=(5,4,3,2,1);
foreach $b (@a){
print $b;
}
Это программа выдаст на экран 54321. Нужно понять, что список, который передается оператору foreach, может быть произвольным списком, а не только переменной-массивом.
Хеши: программерский харч
Хеш (ассоциативный массив) - набор скалярных данных, отдельные элементы которого выбираются по индексному значению. Индексные значения хеша - это произвольные скаляры. Эти скаляры (ключи) используются для выборки значений из массива. Получается, что каждому ключу хеша соответствуют свои данные.
Имена хеш-переменных состоят из знака процента (%) и буквы, за которой следуют буквы, цифры и знаки подчеркивания. Каждый элемент хеша - это отдельное скалярное значение, доступное через индекс, представляющий собой строковое значение, называемое ключом. Вот как надо обращаться к отдельным элементам хеша %some: $some{ключ}, где ключ - любое скалярное выражение. Как и с массивами, новые элементы хеша создаются путем присваивания нового значения:
$some{"new"}="abc"; # создается ключ "new" со значением "bbb"
$some{"abc"}="qwerty"; # создается ключ "abc" со значением "qwerty"
print $some{"abc"}; # выводит на экран qwerty
В Perl'е существует функция keys (%имя_хеша), которая возвращает список всех текущих ключей данного хеша. Давай разберемся с этой функцией на следующем примере:
Назад на стр. 020-042-2 Содержание Вперед на стр. 020-042-4
|