Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документация, учебники по Perl.doc
Скачиваний:
3
Добавлен:
29.10.2018
Размер:
2 Мб
Скачать
☆

Первая программа на Perl

Как и полагается, первой рассматриваемой программой на Perl будет вывод строчки 'Hello World!'. Ниже приведено пять примеров программы (синтаксис Perl позволяет сделать это несколькими способами):

#Program Hello World! print "Hello World\n"; #Program Hello World! print (‘Hello World’,"\n"); #Program Hello World! print ‘He’.(‘l’x2).’o World’."\n"; #Program Hello World! printf ("%s\n", ‘Hello World’); #Program Hello World! print sprintf ("Hello World\n");

Cтрока, которая начинается с символа '#', - это комментарий. Все, что написано после знака '#', игнорируется. Это единственный способ написания комментариев в Perl.

Как видите, в отличие от других языков в Perl нет так называемой "точки входа" или функции main(), программа начинает выполняться с первой строчки. Perl требует обязательного наличия ';' в конце каждого оператора. Скобки в функциях необязательны, и их наличие необходимо только в случае возникновения двусмысленности, а так это дело вкуса. Двойные и одинарные кавычки в языке различаются. В случае двойных кавычек Perl выполнит преобразование текста в них: вставит переменные и специальные символы, если вы их указали. В одинарных же кавычках текст изменен не будет. Поясним на примере:

print "Hello World\n"; #напечатает Hello World, #а ‘\n’ переведет курсор на новую строку print ‘Hello World\n’; #напечатает ‘Hello World\n’ print "summa: $a"; #вместо переменной $a Perl подставит ее значение.

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

На этом закончим знакомство с первой программой на 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 один - ';'. Как уже говорилось, язык не требует его в отладчике, но требует в конце строки (между операторами, если быть точнее) в скриптах. Не обязателен он только после последнего оператора в блоке.