Использование переменных в Perl

Что такое "переменная"?

Переменные предназначены для хранения и обработки данных.
Переменные задаются именами, определяющими области памяти, в которых хранятся значения переменных. Значениями переменных могут быть данные различных типов (целые или вещественные числа, последовательности символов, логические значения и так далее).
Переменная в программе представлена именем и служит для обращения к данным определенного типа. Конкретное значение переменной хранится в ячейках оперативной памяти.

Имя переменной в языке Perl

Имя каждой переменной (идентификатор) может состоять из различных символов (латинские буквы, цифры и так далее), но должно обязательно начинаться с символа $, сразу после которого не должна идти цифра.
Примеры правильных имен переменных: $i, $k7, $summa, $name_surname, $name_4 и т.д.
Примеры НЕправильных имен переменных: $2_name (идентификатор не может начинаться с цифры), $Name@Surname (недопустимый символ @).

Perl не требует объявления переменных

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

Что могут хранить переменные в Perl?

В языке Perl переменные могут содержать числовое значение или строку символов. Тип данных, которые находятся в переменной, определяет тип самой переменной: числовая или строковая.
Над различными типами переменных допустимы различные операции. С числовыми переменными возможны арифметические операции и операции сравнения, со строковыми - операции преобразования символьных строк и также операции сравнения.

Преобразование типов переменных

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

Присвоение значения переменной

Присваивание переменной какого-либо значения числа или строки, либо присваивание одной переменной значения другой переменной является наиболее часто выполняемым действием в программе, написанной на любом языке программирования.
Операция присваивания обозначается в Perl знаком =, слева от которого указывается имя переменной, а слева - помещаемое в эту переменную значение. Например:

$i = 7;
$str = 'Пятница';
$text = "Perl is the beautiful programming language";
$x = $y;


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

$a = $b+3;

вычислит значение выражения, записанного справа, и присвоит его переменной $а.

Какое значение имеет переменная, если ей ничего не присвоено?

Какое значение мы получим, если попытаемся воспользоваться переменной ничего не присваивая ей? Если извлекаемое значение используется, как число, то это будет 0, а если как строка - то "пустая строка" (не содержащая ни одного символа).

Числовые переменные

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

#!/usr/bin/perl
print "Content-type: text/html\n\n";
$a = 4;
$b = 3;
$c = $a + $b;
print "Сумма $a и $b равна $c";

Результатом работы скрипта будет сообщение: Сумма 4 и 3 равна 7.

Форматы строк

PERL содержит два формата строк. Первый формат имеет вид строки, заключенной в апострофы, например, 'текст'. Такие строки воспринимаются интерпретатором буквально, без анализа их содержимого. Например, строка:

print 'Сумма $a и $b равна $c\n';

выведет следующее сообщение: Сумма $a и $b равна $c\n. Видно, что интерпретатор "не пытался" заменить переменные $a и $b их значениями, а также не выполнил переход на новую строчку, заданный управляющей последовательностью \n.

Второй формат имеет вид строки, заключенной в кавычки, например, "текст". Такие строки анализируются интерпретатором, который заменяет в них имена переменных и управляющих последовательностей на соответствующие значения. Это означает, что в строке можно задать имя переменной, которое при вычислениях заменяется значением, содержащимся в переменной на момент вычислений. Например:


$a = 4;
$b = 3;
$c = $a + $b;
print "Сумма $a и $b равна $c\n";


Как мы уже видели выше, эта программа выведет строку: Сумма 4 и 3 равна 7 и осуществит переход на следующую строчку.
Посмотрим еще один пример:

$a = 4;
$b = 3;
$c = $a + $b;
$t = "Сумма $a и $b равна $c\n";
print $t;


Результатом работы этой программы также будет: Сумма 4 и 3 равна 7. Однако теперь это сообщение сначало было присвоено переменной $t, а потом выведено из нее оператором print.

Использование переменных в HTML-коде

В заключение посмотрим еще один пример, в котором переменные используются внутри HTML-кода, что позволяет изменять отображаемое содежимое веб-страницы.

#!/usr/bin/perl

$pupils=29;
$nomer='восемь';
$gruppa="номер $nomer";

print "Content-type: text/html\n\n";
print <<ENDHTML;
<html>
<head>
<title>Пример использования переменных</title>
</head>
<body>
В группе $gruppa обучается $pupils учащихся. 
</body>
</htmL>

ENDHTML

Результат работы скрипта показан на следующем рисунке:

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

Глобальные и локальные переменные

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


К содержанию

 
Скачать новую версию данного учебника в одном архиве

Курс находится в процессе разработки, поэтому архив постоянно обновляется!




 
Hosted by uCoz