Презентация на тему «Perl – язык программирования» Выполнил: Студент группы Худавердян Арман.

Презентация:



Advertisements
Похожие презентации
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
Advertisements

Объектно-ориентированный язык программирования. Переменная - эта поименованная ячейка памяти, хранящая какое-либо одно значение (одно число, один фрагмент.
Символы и строки. Процедуры и функции работы со строками.
СТРОКОВЫЙ ТИП ДАННЫХ Строка это последовательность символов. Каждый символ занимает 1 байт памяти ( код ASCII). Количество символов в строке называется.
PERL.1 Основы языка. История языка 1986 – Larry Wall Истоки – sed, awk, shell, С Возможности системного администрирования и обработки файлов Practical.
Понятие строки. Операции со строковыми величинами. Стандартные процедуры и функции обработки строковых величин. Простые алгоритмы работы со строками на.
Скриптовые языки на примере Perl. Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования.
Программирование Задания В2, В5. Оператор присваивания в языке программирования Задание В2 – базовый уровень, время – 2 мин.
Файловый тип данных Turbo Pascal Операции для работы с файлами 11 класс.
Тема: Управление потоком в PHP Изучить возможности языка PHP при решении задач, требующих использования условного оператора. Рассмотреть примеры управления.
Файловый тип данных Файл – это область памяти на внешнем носителе, в которой хранится некоторая информация. В языке Паскаль файл представляет собой последовательность.
Работа с файлами Сазонов Д.О. ПМиЭММ Часть 2. Тема занятия: Работа с файлами через потоки Для реализации файлового ввода/вывода, необходимо включить в.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Лекция 8 PERL Введение Синтаксис языка. Переменные.
О СНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ. П ЛАН 1. Символьные и строковые величины. Операции над символьными и строковыми величинами. 2. Символьный тип.
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
Строки в Pascal
Основы программирования на Бейсике Массивы. Задание: Найти все 3-хзначные числа, заканчивающихся на 2, 4, 8 и делящихся на 6. Ответ: CLS FOR I=100 TO.
Операторы цикла. Циклический процесс, или просто цикл, – это повторение одних и тех же действий. Последовательность действий, которые повторяются в цикле,
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Транксрипт:

Презентация на тему «Perl – язык программирования» Выполнил: Студент группы Худавердян Арман

PERL - как язык программирования Perl (Practical Extraction and Report Language) является переносимым, интерпретируемым языком, идеально приспособленным для многочисленных приложений по обработке текста. Perl поддерживает структурированные программные конструкции, как и большинство языков программирования высокого уровня, и предлагает богатство встроенных возможностей, накопленных им за годы эволюции среде UNIX. Perl является бесплатным программным обеспечением. Его можно получить платно, и книга Web- программирование служит его бесплатному распространению. Фактически, Perl версии 5 имеется, на CD-ROM, прилагаемом к этой книге. Эта глава, однако, посвящена в первую очередь концепциям Perl версии 4, которая полностью совместима с версией 5 и широко используется на Web.

История PERL Отцом языка Perl является Ларри Вол (Larry Wall). Он разработан в 1986 году для создания отчетов о содержании многочисленных текстовых файлов в среде UNIX. Поскольку существующие средства не подходили для решения такой задачи, Вол (Wall) изобрел новое средство для ее решения. Название Perl означает практический язык для извлечения и составления отчетов (Practical Extraction, а Report Language). Вол продолжал добавлять различные возможности к Perl и сделал его доступным для общего пользования. Популярность Perl возрастает до сих пор, и он стал излюбленным средством многих программных пакетов. Умение программировать на Perl имеет возрастающую важность при составлении резюме.

Структура программы В Perl существует три типа структур данных: скаляры, массивы скаляров и хеши (hashes) - ассоциативные массивы скаляров. Обычно элементы массивов индексируются целыми числами, первый элемент - нулевой. Отрицательное значение индекса обозначает номер позиции элемента с конца. Хеши индексируются строками символов.

Оформление текста Далее мы переходим к свойству text-decoration, которое является замечательным свойством, предлагающим целый ворох интересных возможностей. Как и следовало ожидать, если выбрано значение underline, происходит подчеркивание элемента; точно так же действует тег U в HTML. Значение overline приводит к противоположному эффекту: линия отрисовывается над текстом. Значение line-through проводит линию посередине текста, получается перечеркнутый текст (strikethrough text); это аналогично элементам S и strike в HTML. При выборе значения blink текст начинает мерцать аналогично эффекту, получаемому с помощью довольно опасного тега blink, поддерживаемого только Netscape: p.emph {text-decoration: underline;} p.topper {text-decoration: overline;} p.old {text-decoration: line-through;} p.annoy {text-decoration: blink;} p.plain {text-decoration: none;} Значение none отключает любое дополнительное оформление, которое в противном случае, возможно, применялось бы к элементу. Обычно по умолчанию текст никак не украшается, но не всегда. Например, ссылки обычно подчеркиваются. Для того чтобы запретить подчеркивание гиперссылок, можно использовать такое CSS-правило: a {text-decoration: none;} Если подчеркивание ссылок явно отключается таким правилом, то единственным визуальным отличием между ссылками и обычным текстом будет их цвет (по крайней мере, таково поведение по умолчанию, хотя твердой гарантии этому нет). Также можно комбинировать виды оформления в одно правило. Если требуется, чтобы все гиперссылки были и подчеркнуты, и надчеркнуты, правило будет таким: a:link, a:visited {text-decoration: underline overline;} Однако будьте осторожны: если с одним элементом сопоставляются два разных вида оформления, значение более приоритетного правила полностью вытеснит значение проигравшего. Рассмотрим следующий пример: h2. stricken {text-decoration: line-through;} h2 {text-decoration: underline overline;} В соответствии с этими правилами любой элемент h2 класса stricken будет только зачеркнут. Подчеркивание и надчеркивание утеряны, т. к. значения при краткой записи замещают друг друга, а не суммируются.

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

Функции Функция RINDEX Функция rindex ищет последнее, самое правое вхождение подстроки в строку и возвращает значение позиции первого символа подстроки. Функция имеет следующий формат: $location = rindex(Str, SubStr); Эта функция аналогична функции index, за исключением того, что она возвращает последнее вхождение, а не первое. Например, в следующем примере функция rindex используется для определения последнего вхождения подстроки 'na' в строку 'banana': print rindex('banana', 'na'); # Выведет 4 Функция LENGTH Функция length возвращает число символов в строке. Она имеет следующий формат: $len = length(Str); В следующем примере функция length используется для вывода числа символов в строке: print length('banana'); # Выведет 6 Функция CHOP Функция chop удаляет последний символ строки. Она имеет следующий формат: $character = chop(Str); Функция chop возвращает удаленный символ. Скрипты языка Perl широко используют chop для удаления символа перехода на новую строку и символа конца строки. Функция INDEX Функция index осуществляет поиск заданной подстроки в строке. Она имеет следующий формат: $location = index(Str, SubStr[, Offset]); Функция index возвращает индекс первого вхождения подстроки(SubStr) в строку (Str). Факультативно может быть задан сдвиг от начала (Offset), после которого начинается поиск. Если подстрока не найдена, возвращается значение -1. В следующем примере функция index ищет вхождения подстроки 'па' после третьего символа в строке 'banana': print index('banana', 'na', 3); # Выведет 4.

Функции Функция SUBSTR Функция substr используется для удаления части строки. Она имеет следующий формат: $substring = substr(Str, Offset[, Len]); Функция возвращает подстроку, т. е. часть строки, длина которой не превышает величины, заданной факультативным параметром Len. Возвращаемая подстрока строки str начинается с символа в позиции, заданной сдвигом Offset. Если параметр Len опущен, то возвращаемая строка содержит символы до конца строки включительно. Если параметр Offset отрицательный, то сдвиг вычисляется от конца строки. Наконец, скрипт может использовать substr как lvalue для выполнения операции присваивания. Следующий фрагмент кода иллюстрирует использование функции substr. print substr('orange', 3); #Выведет 'nge' print substr('orange', -2); # Выведет 'ge' print substr('orange', 2, 2); # Выведет 'an' $str = 'apple'; substr($str, -3) = 'ricot'; print $str; # Выведет 'apricot' Функция JOIN Функция join соединяет список элементов в строку, разделяя каждый элемент заданным символом. Она имеет следующий формат: $new_string = join(Str, List); Функция join конвертирует каждый элемент списка в строку и соединяет строки. Следующий фрагмент кода иллюстрирует использование функции join: $str = join(', ', 0.. 4, 10, 20); # Список будет '0, 1, 2, 3, 4, 10, 20' $strn = join ("\t", $a, $b, $c);# Смешает списки Функция SPLIT Функция split разделяет содержимое строки на список элементов. Она имеет следующий формат: split(Delimeter, Str[, Limit]); Аргумент Delimeter определяет символ, по которому осуществляется разделение, например, пробел, слово, символ табуляции ит. д. Факультативный параметр Limit задает максимальное число элементов, которое может содержать список. Следующий пример иллюстрирует использование функции split.

Функции для обработки списков Функция SORT Функция sort сортирует элементы списка. Она имеет следующий = = = Функция sort размещает элементы в списке, упорядочивая их в соответствии с порядковыми номерами символов в таблице ASCII- кодов. Так же как и функция reverse, функция sort возвращает в качестве значения новый список и не воздействует на исходный список. Следующий пример иллюстрирует использование функции = sort (1, 5, 2, 3, 4); # Результат 1, 2, 3, 4, = sort(1, 2, 10); # 1, 10, 2 сортировка в ASCII В подпрограмме или блоке можно изменять упорядочение, в соответствии с которым выполняется сортировка. Следующий пример иллюстрирует использование функции = sort({$a $b} (2, 1, 10)); 1, 2, = sort({$b $a}) (2, 1, 10); 10, 2, 1 sub mycomp { $b $a = sort(mycomp (2, 1, 10)); 10, 2, 1 Функция REVERSE Функция reverse реверсирует элементы списка. Она имеет следующий = Функция reverse реверсирует список и возвращает новый результирующий список. Следующий пример иллюстрирует использование функции = reverse(1.. 5); # Результат 5, 4, 3, 2, = # Результат 1, 2, 3, 4, 5

Функции работы с массивами Функция SHIFT Функция shift удаляет и возвращает элемент из начала массива. Эта функция аналогична функции pop с тем только отличием, что работает от начала массива по принципу FIFO ( ). Функция shift имеет следующий формат: $value = Следующий фрагмент программы иллюстрирует использование функции shift: # из предыдущего примера print # Выведет 10 print # Выведет 20 # () Функция UNSHIFT Функция unshift добавляет один или больше элементов к началу массива. Она имеет следующий код: List); Следующий фрагмент программы иллюстрирует использование функции unshift: = () 5, 10, 20); (5, 10, 20) 1.. 3); (1, 2, 3, 5, 10, 20) Функции PUSH И POP Скрипты языка Perl используют фикции push и pop для того, чтобы добавлять и удалять элементы с конца массива. Иными словами, функции push и pop позволяют скриптам выполнять операции со стеком по принципу: последним вошел, первым вышел. Функция push имеет следующий формат: LIST); Следующий фрагмент иллюстрирует использование функции = (); 10, 20); теперь (10, 20) 1.. 3); теперь (10, 20, 1, 2, 3) В противоположность этому функция pop удаляет элемент, который был вставлен в стек последним и возвращает значение этого элемента. Функция pop имеет следующий формат: $value = Следующий фрагмент программы иллюстрирует использование функции pop: # из предыдущего примера print # Выведет 3 print # Выведет 2 # (10, 20)

Функции работы с массивами Функция SCALAR Функция scalar определяет число элементов в списке. Она имеет следующий формат: Rsult = scalar(List); Обычно скрипты языка Perl не нуждаются в использовании функции scalar применительно к массивам, потому что когда скрипт обращается к массиву, записывая его в скалярном контексте, то он получает в качестве возвращаемой величины число элементов массива. Тем не менее, скрипты могут использовать функцию scalar в случаях, когда контекст является неоднозначным или если список не является массивом. Следующее выражение иллюстрирует использование функции = ; print # Выведет Функция SPLICE Скрипты языка Perl используют функцию splice для того, чтобы извлекать элементы из списка, заменяя их элементами другого списка. Она имеет следующий формат: Offset[, Count[, List]]); Функция splice извлекает указанное число элементов {Count) из массива начиная с элемента, на который указывает величина сдвига (Offset), и заменяет элементы элементами другого списка (List). Если в вызове функции не указан параметр Count, функция извлекает элементы до самого конца массива. Если в вызове функции не указан список, элементами которого замещаются исходные элементы, то функция не добавляет никаких элементов к первоначальному списку. Следующее выражение иллюстрирует использование функции = ; 1, 8, 5, 6); = (1, 5, 6, 10)

Функции работы с массивами ФУНКЦИЯ GREP Функция grep фильтрует элементы списка, для которых заданное выражение принимает значение. Она имеет следующий = grep(Expression, List); Функция grep просматривает элементы списка, подставляя их в качестве аргумента в заданное выражение. Функция grep присваивает текущее выражение элемента списка переменной $_ и вычисляет заданное выражение. Если полученное выражение является истинным, то функция grep добавляет этот элемент к результирующему списку. Следующий фрагмент программы иллюстрирует использование функции = grep($_ & 1, ); (1, 3, 5, 7, = ('a', '' 'b'); ('a', ' ', = grep($_ eq ('a', 'b') Примечание: Если выражение, модифицирует переменную. $_, то исходный список также будет модифицирован.

Функции обработки ассоциативных массивов Функция VALUES Функция values возвращает обычный массив, состоящий из значений ассоциативного массива. Она имеет следующий = values(%Array) Функция values возвращает массив значений ассоциативного массива в виде регулярного списка. Следующий фрагмент программы иллюстрирует использование функции values: # Используем значения из предыдущего примера %ages = ('Bob', 25, 'Mary', 30, 'Zack', = sort values %ages; (15, 25, = %ages; ('Zack', 15, 'Bob', 25, 'Mary', 30) Функция KEYS Функция keys возвращает значения ключей, которые отвечают ассоциативному массиву. Она имеет следующий = keys(%Array); Функция keys возвращает массив ключей в виде регулярного списка. Следующий фрагмент программы иллюстрирует использование функции keys: $ages{'Bob'} = 25; $ages{'Mary'} = 30; $ages{'Zack'} = = keys(%ages); будет 'Zack', 'Bob', = sort keys %ages list 'Bob', 'Mary', 'Zack' for $key (sort keys %ages) { print "$key is $ages{$key}\n" }

Функции обработки ассоциативных массивов Функция DELETE Функция delete удаляет элементы ассоциативного массива. Онаимеет следующий формат: Delete $Array{Key} Следующая инструкция использует функцию delete для того, чтобы удалить элемент, отвечающий ключу Bob из ассоциативногомассива $Employees: Delete $Employees{'Bob'} Функция EACH Функция each осуществляет итерации элементов в ассоциативном массиве. Она имеет следующий = each(%Array); Всякий раз, когда скрипт вызывает функцию each, она возвращает список из двух компонент, которые содержат пару ключ-значение. Когда функция достигает конца списка, она возвращает пустой список. При следующем вызове функции процесс итерации начнется сначала. Следующий фрагмент программы иллюстрирует использованиефункции each: # Используем значения из предыдущего примера %ages = ('Bob', 25, 'Mary', 30, 'Zack', 15); while (($name, $age) = each %ages) { # Выведем ages print "$key is $ages{$key}\n"; }

Операторы PERL В то время как типы данных и переменных языка Perl значительно отличаются от соответствующих типов языка С, операторы и выражения Per] должны вам показаться гораздо более знакомыми. Все операторы С присутствуют в языке Perl, за исключением операторы приведения типов (type), операторы обращения к содержимому указателя *ptr и оператора выбора члена структуры var. member илиvar->member. Кроме того, в языке Perl реализовано много новыхоператоров для использования в таких операциях как сравнение иобработка строк.

Арифметические операторы Арифметические операторы действуют на числовые значения, и их результатом является число. Если выражение включает строковые операнды, то Perl конвертирует строковые значения в числовые перед тем, как оценить выражение. Perl выполняет преобразование строк в числа подобно тому, как это делает функция atof() языка С в библиотеки времени выполнения. В настоящее время Perl поддерживает следующие арифметические операторы: ? + сложение ? - вычитание или изменение знака ? * умножение ? / деление (только для чисел с плавающей запятой) ? % взятие по модулю (только для целочисленных значений) $x = 2. 5; $y = 3; print ($x + 2*$y); # выведет 8. 5 print (7 / $y); # выведет print int (7 / $y); # выведет 2 print (7 % $y); # выведет 1 print (7. 5 % $y); # выведет 1

Побитовые операторы Побитовые операторы воздействуют на бинарное представление целых чисел и имеют целочисленный результат. Если операндом является строка или дробное число, Perl предварительно преобразует его в целое число, обрабатывает операнд, используя 32- битноепредставление. Все побитовые операторы С представлены в языке Perl: ? | побитовое ИЛИ ? & побитовое И ? ^ побитовое исключающее ИЛИ ? ~ побитовая инверсия ? > сдвиг вправо $x = 5; # 101 в двоичном $y = 3; # 011 в двоичном print $x | $y; # 7 (111) print $x & $y; # 1 (001) print $x ^ $y # 6 (110) print $x & ~1; # 4 (100) print $x << 2 # 20 (10100) print $x >> 1 # 2 (10)

Операторы сравнения Число Строка Значение = = eq равно != nе не равно > gt больше чем < it меньше чем >= gе больше или равно <= lе меньше или равно cmp не равно (результат со знаком) Операторы сравнения сравнивают величины двух операндов. Также как при работе с арифметическими операторами, Perl преобразует строчные операнды в численные перед тем, как выполнять сравнение. Для того чтобы позволить скрипту сравнивать строки, которые не являются числами, Perl имеет дополнительные операторы строкового сравнения. Эти операторы сравнивают строки, используя величины ASCII. Если численное значение задано как операнд при сравнении строк, оно сначала преобразуется в строку.

Логические операторы Логические операторы анализируют булевы выражения и возвращают значения или в качестве результата. Perl обрабатывает операнды логических операций как булевы величины, т. е. как истинное или ложное значение. Логические операторы языка Perl включают следующие: ? || логическое ИЛИ ? && логическое И Perl всегда обрабатывает логические выражения слева направо. Кроме того. Perl всегда прекращает оценку, если уже выполненной оценки достаточно, чтобы определить значение результата. В дополнение к общим логическим операторам Perl поддерживает следующие дополнительные логические операторы: ? ! логическое отрицание () ? ?: условная операция ?, последовательное выполнение Оператор логического отрицания (!) заменяет значение булевой величины на противоположную. Так же как и в С, в языке Perl условный оператор (?:) использует три операнда. Выражение, использующее условный оператор, имеет следующую форму: Condition ? true-result: false-result

Строковые операторы Первые два оператора легко иллюстрируются примером: print 'b'. 'an' x 2. 'a'; # выведет 'banana' Как показано, это выражение использует конкатенацию строк иоператор репли-кации для того, чтобы напечатать строку. Два последних оператора используются для проверки того, включаетли строковый операнд заданный образец. Этот вопрос детально обсуждается в разделе. Следующий пример иллюстрирует их использование: $var = 'banana'; print ($var =~ /ana/) ? TRUE: FALSE; В этом случае оператор проверки вхождения в строку образца(=~) использовался для проверки того, входит ли образец ana в переменную $var. В данном случае выражение принимает значение. Поскольку Perl представляет собой язык для обработки текста, неудивительно, что в него включены дополнительные операторы для работы со строками. Ниже перечисляются операторы обработки строк:?. конкатенация строк ? х репликация ? =~ сопоставление переменной с образцом ? !~ то же, что и предыдущее, но с дополненным отрицанием результата

Операторы = ($r, $g, $b); # пакет цветов ($r, $g, $b) # распаковка цвета lvalue представляет собой целостность, которой может быть присвоено значение, например, lvalue может быть переменной. Например, скрипт Perl не может присвоить значение строке символов, наподобие выражения = 32, поскольку не является lvalue. Тем не менее, скрипт может присвоить значение переменной $Bob, например, следующим образом $Bob = 32, поскольку переменная $Bob является lvalue. В языке Perl любая целостность, которая может использоваться как lvalue, обычно таковой и является. Например, следующее выражение упаковывает (pack) и распаковывает (unpack) список значений, причем список переменных в первом случае и три скалярных во втором являются lvalues:

Операции для работы со = 0.. 9; # список (1, 2, 3, 4, 5, 6, 7, 8, 9) В состав операций для работы со списками входят следующие: -, конструктор списков -.. оператор области - х оператор репликации Оператор области возвращает в качестве значения последовательность целых чисел, которая начинается от левого операнда и продолжается до правого операнда включительно. Скрипты часто используют оператор области совместно с конструктором списков для создания списков. Например, следующее выражение использует оператор области для того, чтобы создать список под который содержит числа от нуля до девяти:

Операторы для работы с файлами Следующий тексти ллюстрирует использование этих операторов: if (-e, 'perl. exe') { print 'File size is:' -s 'perl. exe'; } else { print 'can\' t find perl. exe\n'; } (-w 'SomeFile') || die "Cannot write to SomeFile\n"; Perl содержит обширный список операторов для работы с файлами. Имеется не менее 27 операторов, возвращающих специфическую информацию о файле, даже не открывая его. Многие операторы языка Perl ориентированы на системы UNIX, но следующие операторы работают на любых системах: -d проверяет наличие каталога -е определяет наличие файла -s определяет размер файла -w определяет, можно ли писать в данный файл Следующие два файловых оператора возвращают булево значение. Третий оператор возвращает размер файла в байтах.

Простые и составные операторы Следующий текст иллюстрирует простой оператор присваивания на языке Perl: $Title = 'Web Programming'; Так же как и при программировании на С, скрипты Perl могут содержать блоки операторов, или составные операторы, которые помещаются в фигурные скобки ({}), как показано ниже: { # Операторы # Другой блок операторов } Простым выражением называется любая допустимая комбинация операторов и операндов. В языке Perl оператором является выражение, заканчивающееся точкой с запятой. Как и в языке программирования С, все операторы оканчиваются точкой с запятой. Когда вы вводите текст программы в отладчик, можно опускать точку с запятой, поскольку отладчик поставит ее за вас.

Условные операторы if (expr) statement; // приемлемо для C но не для Perl if (expr) { statement; # вот так нужно делать в Perl } Отличие состоит в том, что в языке С оператор if может использовать простую инструкцию без фигурных скобок, тогда как в языке Perl инструкции обязательно должны быть заключены в фигурные скобки, образуя блок.

Оператор DO $DayCount = do { if ($Month eq 'September' || $Month eq 'April' || $Month eq 'June' || $Month eq 'November') { 30; } elsif ($Month eq 'Februry') { $Year & 3 ? 28: 29; # Проверка на весокосный год } else { 31; } Одним из частных случаев блочных операторов служит оператор do, который позволяет блоку инструкций возвращать значения. Значением, которое оператор do возвращает, является значение последнего выражения, оцененного в рамках блока. Например, следующий оператор do сравнивает строковую переменную $Month с месяцами года и присваивает переменной $DayCount значение, равное числу дней в месяце:

Оператор UNLESS if (!(expr)) // Отрицание на С { statement; } Наряду с использованием логического отрицания, скрипты Perl часто содержат оператор unless, который обеспечивает то же самое, что и записанный выше код на С. unless (expr) { statement; } В языке программирования С программисты используют логическое отрицание (!) для изменения булевой величины на противоположное, как показано ниже:

Спасибо за внимание!