Приглашаем посетить
Татищев (tatischev.lit-info.ru)

Perl, который оценят все.

Переменные и типы данных в Perl

Данные - одна из самых важных частей любой программы. Perl автоматически определяет тип используемых вами данных. Язык делит данные на численные, строковые, списки и хеши (Hash). Есть еще заголовок HANDLE, он выдается при открытии файла или потока. Можно также использовать ссылки на другие переменные, но сделано это совершенно не так, как в других языках. Давайте рассмотрим примеры:

print 5;
# 5

print 6+2;
# 8

print 'Privet';
# privet

$kuda= "res"; $$kuda=5;
# занесет число 5 в переменную res (ссылка).

Двойной знак '$' означает: занести значение в переменную, имя которой хранится в переменной.

Для удобства целочисленные данные можно вводить несколькими способами.

Десятичные: 23, 2.6, 3.14, 1E6, 23_000.

Шестнадцатеричные: 0xFF, 0x2395FABC.

Восьмеричные: 0и113, 077 (0 - признак восьмеричного числа).

Вот как это записывается:

print 1E6;
# 1000000

print 23_000;
# 23000

print 0xFF;
# 255

Стоит особо отметить, что для внутреннего представления чисел Perl использует тип с плавающей запятой (double). Однако в контексте он их различает (например, количество байт для записи в файл) и автоматически преобразовывает. Также в Perl есть так называемые булевы (boolean) переменные, которые в принципе являются численными. Они могут принимать только два значения: 'истинно'(TRUE) и 'ложно'(FALSE).'Истинно' равносильно любому числу, кроме нуля, 'ложно' - это всегда нуль.

Синтаксис языка


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

$num = 5;
#число

$str = "Privet";
#строка

Скаляр (скалярное значение) - это число, строка, значение булевого типа, но не список значений и не массив (включая ассоциативные массивы). Таким образом, скаляр - это только одно значение. Знак '$' перед именем переменной указывает, что данные надо рассматривать как скаляр. Имя переменной может содержать английские буквы, символ '_' и цифры. Начинаться с цифры переменная не может. Имена переменных (да и названия функций) чувствительны к регистру. Переменные $a и $A - это разные переменные.

Объявление переменной в Perl - эквивалентно присвению ей значения. До тех пор пока переменная не существует, Perl считает ее значение равное undef. Это не просто '0', а именно признак того, что у переменной нет значения. При использовании такой переменной для числовых операторов undef преобразуется в 0, для строковых - в пустую строку "". Проверить, есть ли значение у переменной, позволяет функция defined. Функция defined возвращает 1 (TRUE), если ее параметр не равен undef, и возвращает undef в противном случае.

Декларация - это объявление переменной или функции, а оператор - одна законченная лексема, например:

print 4+4;
#оператор

open file,"file" or die "End of program";
#еще один оператор

Один или более операторов и деклараций, которые заключены в фигурные скобки '{ }', называют 'блоком'. Блок имеет смысл в функциях, циклах и операторах сравнения.

Разделитель в Perl один - ';'. Как уже говорилось, язык не требует его в отладчике, но требует в конце строки (между операторами, если быть точнее) в скриптах. Не обязателен он только после последнего оператора в блоке.

Назад | Оглавление | Далее