Скриптовые языки на примере Perl. Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования.

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



Advertisements
Похожие презентации
PERL.1 Основы языка. История языка 1986 – Larry Wall Истоки – sed, awk, shell, С Возможности системного администрирования и обработки файлов Practical.
Advertisements

PERL.2 Основы языка. Выражения Терм – любой литерал, любая переменная, любое выражение в круглых скобках, любая строка символов в кавычках, любая функция.
Файловая переменная. Файл – совокупность данных, записанная во внешней памяти под определенным именем. Любой файл имеет три характерные особенности: уникальное.
Операторы языка. Арифметические операторы Арифметические операторы Арифметические операторы Арифметические операторы Операторы сравнения Операторы сравнения.
1.Арифметические $var3 = $var1 + $var2 $var3 = $var1 * $var2 $var3 = $var1 / $var2 $var3 = $var1 % $var2 Базовые операции языка.
Алгоритмический язык и язык Бейсик Ученицы 11-А класса ОШ 15 Бондаренко Натальи.
Операторы. Оператор выбора Оператор выбора Оператор выбора Оператор выбора Оператор присваивания Оператор присваивания Оператор присваивания Оператор присваивания.
Работа с файлами Сазонов Д.О. ПМиЭММ Часть 2. Тема занятия: Работа с файлами через потоки Для реализации файлового ввода/вывода, необходимо включить в.
Лекция 9 Регулярные выражения Операторы и приоритеты.
Файл это поименованная область диска. Чтобы записать информацию в файл надо проделать следующие операции 1.Открыть файл 2.Вывести данные в файл 3.Закрыть.
Php Что такое php? PHP – это высокоуровневый язык программирования для WEB работающий по принципу транслирующего интерпретатора.
Лекция 9 Функции. Массивы-параметры функции Передача массива в функцию Пример: void array_enter(int a[], int size) { int i; for (i = 0; i < size; i++)
Язык программирования Delphi. Алфавит языка 53 буквы латинского алфавита и символ подчеркивания Цифры от 0 до 9 23 спец.символа
Лабораторная работа 7. Работа с динамической памятью, строками и файлами.
Основные типы алгоритмических структур. Линейный алгоритм (следование). Алгоритм, в котором команды выполняются последовательно одна за другой, называется.
Лекция 7. Структура языка С/С++. Операторы ветвления: условный оператор if. Полное ветвление. Неполное ветвление. Оператор множественного выбора switch.
М.Ю. Харламов, ВНУ им. В.Даля, Семантический анализатор Семантический анализатор выполняет следующие основные действия: проверку соблюдения во входной.
Лекция 8 PERL Введение Синтаксис языка. Переменные.
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
Основы программирования В качестве базового языка взят обычный BASIC позволяющий в простой и наглядной форме выполнять основные конструкции программирования.
Транксрипт:

Скриптовые языки на примере Perl

Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования от системы Минимум риска «завалить» всю систему Кроссплатформенность Компилируемые Программа транслируется в машинные коды Быстродействие Более полный доступ к ресурсам системы Perl – предварительно компилируемый ( скриптовый ) язык программирования высокого уровня. Основной особенностью языка считаются его богатые возможности по работе с текстом. #!/usr/bin/perl -w print "Hello, world!";

Типы данных Скаляр $index числа, строки и ссылки тип определяется динамически упорядоченный список скаляров обращение к элементу: $array[10] Хэш-таблица %hash Ключ => скаляр обращение к элементу: $hash{ key } keys( %hash ) – массив ключей

Операции и выражения Аналогичные используемым в языке С +, -, *, /, % ++, -- ==, !=,, = &&, ||, ! &, |, ^, ~, > =, +=, -=, *=, /=, %=, &=, |=, ^=, >=, &&=, ||=, x ? y : z [] Уникальные **. (конкатенация) x (повторение) eq, ne, lt, gt, le, ge, cmp or, and, not, xor.=, x= \ (ссылка), -> =~, !~, m//, s///, tr/// print `команда` .. => {}

Операторы Условные If и unless (модификатор) If {…} else {…} If {…} elsif {…} … else {…} Цикловые while и until foreach for last next redo

Ввод-вывод Оператор Оператор print

Простейшая работа с файлами Дескриптор – это символическое имя, которое используется для представления файла Открытие файлов: open дескриптор, имя_файла_c_префиксом Префиксы: ( запись), >> ( добавление ) Возвращает 0 в случае успешного выполнения. Закрытие файлов: close дескриптор Чтение из файлов: Запись в файлы: print дескриптор

Работа со строками Регулярные выражения По сути это строки-шаблоны, состоящие из символов и метасимволов (символы, имеющие специальное значение) и задающие определенные правила поиска строк. Метасимволы: \ - экранирование или отрицание. - одиночный символ ^ - начало строки $ - конец строки | - выбор [ ] - класс символов ( ) - группировка * - нуль и более повторений + - одно и более повторений ? - нуль или одно повторение { } - явное количество повторений Метапоследовательности: \n – символ новой строки \r – символ возврата каретки \t – символ табуляции \s – класс пробельных символ \d – цифровые символы \w – буквенно-цифровые символы

Подпрограммы и функции Определение: sub имя [(параметры)] [{ тело }]; Вызов: имя ( параметры); имя параметры; Определение локальных переменных: функции my и local Возврат значений: функция return Передача параметров:

Практическое задание 1.Шаблонный парсинг входной последовательности строк: bad -> good выходим, если встретили слово exit 2. Объединение данных из двух файлов в один Файл1: Anna 17 Pavel 20 Lena 40 Dima 25 Ivan 90 Файл2: Inna Ivan Marina Dima Нужныйрезультат: Name Age Phone Inna Pavel 20 - Marina Dima Ivan Anna 17 - Lena 40 -

Решение Задачи 1 while( ) { exit() if /exit/; $_ =~ s/good/bad/; print $_; }

Решение Задачи 2 (часть 1) open FILE1, "f1"; open FILE2, = ; $file1_size = = ; $file2_size = $#file2; for( $i = 0; $i < $file1_size + 1; $i++) { if( $file1[$i] =~ /(\w+)\s+(\d+)/ ) { %{$name_hash{$1}} = ("age" => $2, "phone" => "-"); }

Решение Задачи 2 (часть 2) for( $i = 0; $i< $file2_size + 1; $i++) { if( $file2[$i] =~ /(\w+)\s+([0-9-]+)/ ) { if( defined $name_hash{$1} ) { $age = ${$name_hash{$1}}{"age"}; } else { $age = "-"; } %{$name_hash{$1}} = ("age" => $age, "phone" => $2); }

Решение Задачи 2 (часть 3) print "Name".(" " x 4)."Age".(" " x 4)."Phone\n"; foreach (keys( %name_hash)) { printf("%-8s", $_); printf("%-7s%s\n", ${$name_hash{$_}}{"age"}, ${$name_hash{$_}}{"phone"}); }

Спасибо за внимание. Вопросы?