Perl - переменные

Переменные - это зарезервированные ячейки памяти для хранения значений. Это означает, что когда вы создаете переменную, вы резервируете некоторое место в памяти.

В зависимости от типа данных переменной интерпретатор выделяет память и решает, что можно сохранить в зарезервированной памяти. Таким образом, назначая переменным разные типы данных, вы можете хранить в этих переменных целые, десятичные числа или строки.

Мы узнали, что Perl имеет следующие три основных типа данных:

  • Scalars
  • Arrays
  • Hashes

Соответственно, мы собираемся использовать в Perl три типа переменных. АscalarПеред переменной будет стоять знак доллара ($), и она может хранить либо число, либо строку, либо ссылку. AnarrayПеременной будет предшествовать знак @, и она будет хранить упорядоченные списки скаляров. Наконец,Hash Перед переменной будет стоять знак%, и она будет использоваться для хранения наборов пар ключ / значение.

Perl поддерживает каждый тип переменной в отдельном пространстве имен. Таким образом, вы можете, не опасаясь конфликта, использовать одно и то же имя для скалярной переменной, массива или хэша. Это означает, что $ foo и @foo - две разные переменные.

Создание переменных

Переменные Perl не нужно явно объявлять для резервирования места в памяти. Объявление происходит автоматически, когда вы присваиваете значение переменной. Знак равенства (=) используется для присвоения значений переменным.

Обратите внимание, что объявление переменной перед ее использованием обязательно, если мы используем use strict заявление в нашей программе.

Операнд слева от оператора = - это имя переменной, а операнд справа от оператора = - это значение, хранящееся в переменной. Например -

$age = 25;             # An integer assignment
$name = "John Paul";   # A string 
$salary = 1445.50;     # A floating point

Здесь 25, «Джон Пол» и 1445,50 - это значения, присвоенные переменным $ age , $ name и $ salary соответственно. Вскоре мы увидим, как мы можем присваивать значения массивам и хешам.

Скалярные переменные

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

Вот простой пример использования скалярных переменных -

#!/usr/bin/perl

$age = 25;             # An integer assignment
$name = "John Paul";   # A string 
$salary = 1445.50;     # A floating point

print "Age = $age\n";
print "Name = $name\n";
print "Salary = $salary\n";

Это даст следующий результат -

Age = 25
Name = John Paul
Salary = 1445.5

Переменные массива

Массив - это переменная, в которой хранится упорядоченный список скалярных значений. Переменным массива предшествует знак «at» (@). Чтобы сослаться на отдельный элемент массива, вы будете использовать знак доллара ($) с именем переменной, за которым следует индекс элемента в квадратных скобках.

Вот простой пример использования переменных массива -

#!/usr/bin/perl

@ages = (25, 30, 40);             
@names = ("John Paul", "Lisa", "Kumar");

print "\$ages[0] = $ages[0]\n";
print "\$ages[1] = $ages[1]\n";
print "\$ages[2] = $ages[2]\n";
print "\$names[0] = $names[0]\n";
print "\$names[1] = $names[1]\n";
print "\$names[2] = $names[2]\n";

Здесь мы использовали знак escape (\) перед знаком $, просто чтобы его распечатать. Другой Perl поймет это как переменную и напечатает ее значение. При выполнении это даст следующий результат -

$ages[0] = 25
$ages[1] = 30
$ages[2] = 40
$names[0] = John Paul
$names[1] = Lisa
$names[2] = Kumar

Хеш-переменные

Хеш - это набор key/valueпары. Переменным хеширования предшествует знак процента (%). Чтобы сослаться на отдельный элемент хэша, вы будете использовать имя хеш-переменной, за которым следует «ключ», связанный со значением в фигурных скобках.

Вот простой пример использования хеш-переменных -

#!/usr/bin/perl

%data = ('John Paul', 45, 'Lisa', 30, 'Kumar', 40);

print "\$data{'John Paul'} = $data{'John Paul'}\n";
print "\$data{'Lisa'} = $data{'Lisa'}\n";
print "\$data{'Kumar'} = $data{'Kumar'}\n";

Это даст следующий результат -

$data{'John Paul'} = 45
$data{'Lisa'} = 30
$data{'Kumar'} = 40

Переменный контекст

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

#!/usr/bin/perl

@names = ('John Paul', 'Lisa', 'Kumar');

@copy = @names;
$size = @names;

print "Given names are : @copy\n";
print "Number of names are : $size\n";

Это даст следующий результат -

Given names are : John Paul Lisa Kumar
Number of names are : 3

Здесь @names - это массив, который использовался в двух разных контекстах. Сначала мы скопировали его в любой другой массив, то есть в список, поэтому он вернул все элементы, предполагая, что контекст является контекстом списка. Затем мы использовали тот же массив и попытались сохранить этот массив в скаляре, поэтому в этом случае он вернул только количество элементов в этом массиве, предполагая, что контекст является скалярным контекстом. В следующей таблице перечислены различные контексты -

Sr.No. Контекст и описание
1

Scalar

Присваивание скалярной переменной оценивает правую часть в скалярном контексте.

2

List

Присваивание массиву или хешу оценивает правую часть в контексте списка.

3

Boolean

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

4

Void

Этот контекст не только не заботится о возвращаемом значении, ему даже не нужно возвращаемое значение.

5

Interpolative

Этот контекст встречается только внутри кавычек или вещей, которые работают как кавычки.