Полная Энциклопедия находиться здесь: BiTStyle.narod.RU - Энциклопедия компьютерного железа

Веб мастерам | Радио телефоны | Аудио: mp3, cd, md плееры | Цифровые фото камеры | Диктофоны

Шаг 3 - Переменные в Perl

Переменных в перл, в отличии от таких языков, как С++ или Pascal, всего три типа. Они подразделяются на скаляры, массивы и хеши - так называемые ассоциативные массивы. Так как это средство для обработки текста, они не делятся на текстовые и численные, для перла это все равно.
Скаляры
Скаляры могут иметь только одно значение, они начинаются со знака "$".
Например:
$Var1 = " HeLLo All !!!! :- )))))))))";
Где Var1 - имя этой переменной, "=" в данном случае присваивает переменной значение "HeLLo All !!!! :- )))))))))".
Значение этой переменной можно вывести на экран таким образом:
$Var1 = " HeLLo All !!!! :- )))))))))";
print "Значение \$Var1 = $Var1";
Появиться результат:
Значение $Var1 = HeLLo All !!!! :- )))))))))
Обратите внимание на то, что перед первым $Var1 стоит знак "\", он сообщает компилятору, что следующее название переменной надо проигнорировать и вывести как обычную строку. После print текст может содержаться в двойных кавычках, если же вы напишите этот текст в одинарных кавычках (апострофах), то получится такой определённый казус:
Значение $Var1 = $Var1;
Если кто умеет программировать на SHELL под UNIX то, тот знает, что переменные и метасимволы в одинарных кавычках игнорируются. Раз уж мы начали говорить о строках, то надо еще сказать об обратном апострофе - так вот если вы заключите в них какую либо команду интерпретатора, то эта команда выполнится (примечание: если вы введете обычный текст, то эта строка пропускается интерпретатором)
Пример:
print "Сегодня: ",'date';
Результат:
Сегодня: Oct 28 16:36:10 YEKST 1999
Заметьте, что можно сочетать любые виды кавычек разделяя их запятой. Можно так же записывать переменные вне скобок и результат будет таким же, как если бы мы поставили в двойные кавычки, но есть некоторые различия, некоторые из них мы рассмотрим в этой главе.
Скалярам можно присвоить не только строки, но и числовое значение. Числа не заключаются в кавычки.
Пример:
$Var3 = 80;
print "->$Var3<- ";
Результат:
->80<-
Если вы занесли в скаляр число, то с ним можно проделывать всяческие арифметические операции, но об этом попозже.
Массивы
Массивы (списки скаляров) начинаются с символа "@" и могут содержать несколько значений.
Значения в массивы можно занести следующим образом:
@array = (1999,"Hello",'Привет',`date`);
Можно так же обращаться к отдельному элементу этого массива с помощью скаляров и это будет равносильно предыдущему варианту:
$array[0] = 1999;
$array[1] = "Hello";
$array[2] = 'Привет';
$array[3] = `date`;
Здесь первый символ знак доллара, после идет имя этого массива, а потом в квадратных скобках указывается элемент, к которому вы хотите обратиться.
Если вы захотите вывести его, можно воспользоваться таким способом:
print "This array : @array";
Результат:
This array : 1999 Hello Привет Oct 28 16:36:10 YEKST 1999
Элементы массива будут располагаться через пробелы, а если сделать так:
print "This array :",@array;
Результат:
This array :1999HelloПриветOct 28 16:36:10 YEKST 1999
Между элементами пробелов нет.
В массив можно включить другой массив или скаляр, присвоив элементу массива, другую переменную:
@mas2 = (@array," - массив в массиве, ", $var1,"- скаляр");
но если вы сделать таким образом:
@mas2[1] = @array;
то результатом этого будет присвоение @mas2[1] числа элементов массива @array, но если вы хотите все же включить @array в элемент массива, то поставьте его в двойные кавычки:
@mas2[1] = "@array";
Хеш
Хеши(ассоциативные массивы) - это тот же самое что обыкновенный массив, но в нем чередуются названия и значения, то есть что-то вроде name:Sidorov, где name - название, а Sidorov - значение. Хеши в основном служат для создания текстовых баз данных. Они начинаются со знака "%". Инициировать их можно как обыкновенные массивы:
%hesh = ( 'name'," Sidorov ",'data_rozhdeniya',1900,'adress',"bomzh");
но есть и другие способы представления: через скаляры, к хешу можно обратиться следующим образом:
$hesh{name} = Sidorov;
$hesh{data_rozhdeniya} = 1900;
$hesh{adress} = bomzh;
- это будет равносильно вышеизложенному примеру. Но есть более удобные способы с помощью "=>" это выглядит примерно так:
%hesh = ( name => "Sidorov",
data_rozhdeniya =>1900,
adress => "bomzh");
Так же в перле есть указатели на переменные, но в данном шаге они как видите, рассматриваться не будут.
-> Квесты -> Софт -> Симуляторы -> Для детей -> Аркады -> Экшн -> Ролевые игры (RPG) -> Стратегии

Hosted by uCoz