Учебники

Perl — переменные

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

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

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

  • Скаляры
  • Массивы
  • Хэш

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

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

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

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

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

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

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

Здесь 25, «John Paul» и 1445.50 — значения, присвоенные переменным $ age , $ name и $ salary, соответственно. Вскоре мы увидим, как мы можем присваивать значения массивам и хэшам.

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

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

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

Live Demo

#!/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» (@). Для ссылки на один элемент массива вы будете использовать знак доллара ($) с именем переменной, за которым следует индекс элемента в квадратных скобках.

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

Live Demo

#!/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

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

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

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

Live Demo

#!/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 обрабатывает одну и ту же переменную по-разному в зависимости от контекста, то есть ситуации, когда переменная используется. Давайте проверим следующий пример —

Live Demo

#!/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 — это массив, который использовался в двух разных контекстах. Сначала мы скопировали его в любой другой массив, то есть в список, чтобы он возвращал все элементы, предполагая, что контекст является списочным контекстом. Затем мы использовали тот же массив и попытались сохранить этот массив в скаляре, поэтому в этом случае он вернул только количество элементов в этом массиве, предполагая, что контекст является скалярным контекстом. В следующей таблице перечислены различные контексты —

скаляр

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

Список

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

логический

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

пустота

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

интерпол

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