Реферат: Использование языка Perl - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Использование языка Perl

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 22 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

Использование языка Perl Содержание 6.1Основные особенности Perl 6.1.1Введение 6.2Взаимодействие с СУБД 6.2.1Взаимоде йствие с Oracle 6.2.1.1Основные функции доступа 6.2.1.2До полнительные функции 6.2.1.3Переменные 6.2.1.4Переменные для подстановки 6.3Написание модулей CGI 6.4Обработка файлов формата DBF 6.1 Осно вные особенности Perl 6.1.1 Введение Perl - интерпретируемый язык , приспособленный для обработки произвол ьных текстовых файлов , извлечения из них н еобходимой информации и выдачи сообщений . Perl та кже удобен для написания различных системных программ . Этот язык прост в использ овании , эффективен , но про него трудно ска зать , что он элегантен и компактен . Perl сочит ает в себе лучшие черты C , shell , sed и awk , поэтому для тех , кто знаком с ними , изучение Perl-а не представи т особого труда . Cинтаксис выражений Pe rl- а близок к синтаксису C . В отличие от большинства утилит ОС UNIX Perl не став ит ограничений на объем обрабатываемых данных и если хватает ресурсов , то весь файл обрабатывается как одна строка . Рекурсия может быть произвольной глубины . Хотя Perl приспо со блен для обработки текстовых файлов , он может обрабатывать так же двоичные данные и создавать .dbm файлы , подобные ассоциати вным массивам . Perl позволяет использовать регулярные выражения , создавать объекты , вставлять в программу на С или C++ куски кода н а Perl-е , а также позволяет осуществлять доступ к базам данных , в том числе Oracle . Этот язык част о используется для написания CGI -модулей , которые , в свою очере дь , могут обращаться к базам данных . Таким образом может осуществляться доступ к ба зам данных ч ерез WWW . 6.2 Взаимодействие с СУБД Perl позволяет осущ ествлять доступ к различным СУБД . Здесь бу дет освещен вопрос доступа к СУБД Oracle . 6.2.1 Взаимодействие с Oracle 6.2.1.1 Основные функции доступа Мы приведем зд есь пример программы , которая создает та блицу , помещает в нее некоторые данные и потом производит выборку строк из этой таблицы . #!/usr/local/bin/perl use Oraperl; # подключаем модуль Oraperl $system_id = 'T:bdhost.com:Base'; $lda = &ora_login($system_id,'scott','tiger'); # вход в систему $st = 'create table EMP (name varchar2(100), organization varchar2(100))'; $csr = &ora_open($lda,$st) || die $ora_errstr; &ora_close($csr); # создание таблицы в базе данных $st = 'insert into EMP values (\'John Smit\', \'NATO\')'; $csr = &ora_open($lda, $st); &ora_close($csr); # помещение строки в таблицу В результате в базе создалась таблица из двух столбцов с одной записью : Name Organization John Smit NATO $st = 'select name from EMP where organization = \'NATO\''; $csr = &ora_open($lda,$st); # выбир аем из таблицы значения столбца name, # которым сответствует значение столбца organization # равное 'NATO' @result = &ora_fetch($csr); # помещаем эти значения в массив @result &ora_close($csr); print @result; &ora_logoff($lda); # выход из системы Для взаим о действия с Oracle в Perl есть специальный модуль Oraperl.pm . Основными функциями для доступ а к базе данных являются : &ora_login $lda = &ora_login($system_id,$username,$password) Для того , чтоб ы получить доступ к информации , хранимой в Oracle необходимо сначала войти в систему . Это осуществл яется вызовом функции &ora_login() . Эта функция имеет три параметра : системный идентификатор базы данных , имя по льзователя в базе и пароль пользователя . В озвращается идентификатор регистрации в системе ( Oracle Login Da ta Area ). Неск олько доступов могут осуществляться одновременно . Эта функция эквивалентна функции OCI(Oracle Call Interface) olon или orlon . &ora_open $csr = &ora_open($lda, $statement [,$cache]) Для определения SQL-запроса в базу данных программа должна вызывать функцию &ora_open . Эта функция имеет как минимум два параметра : идентификатор регистрации и SQL в ыражение . Необязательный третий параметр описывае т размер буфера строк для SELECT оператора . Воз вращается курсор Oracle . Если третий параметр опущен , то используется стандартный размер буфера . $csr = &ora_open($lda,'select ename, sal from emp order by ename',10); Эта функция эк вивалентна функции OCI oopen или oparse . &ora_bind &ora_bind($csr, $var, ...) Если SQL выражение содержит обращение к перемен ным языка Perl , то необходимо подставить вместо имен значения переменных . Для этого используется функция &ora_bind . $csr = &ora_open($lda, 'insert into emp values (:1,:2)'); &ora_bind($csr,$ename,$sal); - подставляет в SQL выражение вместо :1 и :2 значен и я переменных $ename и $sal . &ora_fetch $nfields = &ora_fetch($csr[, trunc]); @array = &ora_fetch($csr); Эта функция ис пользуется с оператором SQL SELECT для извлечения инф ормации из базы данных и имеет только один обязательный параметр - идентификатор ку рсора , полученный в результате вызова функции &ora_open . В ск алярном контексте она возвращает число выбран ных строк , в списковом - массив выбранных с трок . Второй необязательный параметр содержит информацию о том , можно ли обрезать данны е типов LONG и LONG RAW или выд авать сообщение об ошибке . Если параметр о пущен , то информация берется из переменной $ora_trunc . Если произошло обрезание данных , то переменная $ora_errno принимает значение 1406 . Эта функция экви валентна функции OCI ofetch . &ora_close &ora_cl ose($csr) Если открытый курсор не будет больше использоваться , то его нужно закрыть вызовом функции &ora_close . Это эквивалентно функции OCI oclose . &ora_do &ora_do($lda,$statement) Не все SQL-выраже ния возвращают данные или содержат переменные для подст ановки . В таких случаях функция &ora_do выступает в качестве альтернативы &ora_open и &ora_close . Первым параметром является идентификатор регистрации , вторым -- SQL выражение . &ora_do($lda,'drop table employee'); это эквивалентно : &ora_close(&ora_open($ lda, 'drop table employee')); &ora_logoff &ora_logoff($lda) Для выхода из системы используется функция &ora_logoff . Она эквивалентна функции OCI ologoff . 6.2.1.2 Дополнительные функции Дополнительные во зможности предоставляются функциями &ora_titles() &ora_length() &ora_types() &ora_autocommit() &ora_commit() &ora_rollback() &ora_version() &ora_titles @titles = &ora_titles($csr) Программа может определить название полей , содержимое которых будет извлечено запросом , вызовом функции &ora_title . Эта фу нкция имеет один параметр - курсор . Заголовки обрезаются до длины поля . &ora_length @length = &ora_length($csr) Программа может определить длину каждого из полей , возвраще нных запросом , с помощью вызова функции &ora_length . Она имеет тол ько один параметр - курсор и возвращает массив целых чисел . &ora_types @types = &ora_types($csr) Программа может определить тип каждого из полей , возвращенн ых запросом , с помощью вызова функции &ora_types . Она имеет один параметр - курсор и возвращает массив цел ых чисел. Эти типы определяются в до кументации по OCI и в файле oraperl.ph для Oracle v6 . &ora_autocommit &ora_autocommit($lda,$on_or_off) Режим автоматичес кого завершения транзакций можно установить и ли отменить вызовом функции &ora_autocommit . Эта функция имеет дв а параметра : идентификатор регистрации и буле вскую переменную , которая указывает действие , которое нужно выполнить . Если значение переме нной ненулевое , то режим включается , если нулевое , то отключается . По умолчанию режим не включен . Режим включается н а продолжительность пребывания в системе . Если есть необходимость включать его только для одного оператора , то лучше делать несколь ко регистраций и использовать для каждого оператора отдельный идентификатор регистрации . &ora_commit, &ora_rollback &ora_com mit($lda) &ora_rollback($lda) Изменения в ба зе данных могут быть сохранены или отмене ны вызовом этих функций . Они имеют один параметр - идентификатор регистрации в системе . Транзакции , результат которых уже был со хранен не могут быть отменены &ora_rollback . Эти функции также д ействуют на все время пребывания в систем е , а не на отдельные операторы . &ora_version &ora_version() Эта функция пе чатает версию и информацию об авторских п равах , касающуюся Oraperl . Она не возвращает ничего . 6.2.1.3 Переменные В мо дуле Oraperl.pm есть шесть специальных переменных : $ora_cache $ora_long $ora_trunc $ora_errno $ora_errstr $ora_verno Эти переменные использую тся для определения поведения Oraperl в определенных условиях . $ora_cache Эта переменная определяет размер буфера для функции &ora_open() и SELECT-выражения , если точный размер буфера не указан . Как правило устанавливается размер буфера рав ный пяти . Присваивание этой переменной значен ия , равного нулю , устанавливает значение этой переменной равным первоначальному знач ен ию . Присваивание отрицательной величины приводит к ошибке . $ora_long Обычно Oraperl спрашивает базу данных о длине каждого по ля и соответствующим образом распределяет буф ерное пространство . Это невозможно для полей типа LONG и LONGRAW . Распределение про странства в предположении максимально воз можной длины ( 65535 bytes ) привело бы к излишним тратам памяти . По этому когда &ora_open() определяет , что поле имеет тип LONG , память распределяется сог ласно значению переменной $ora_long . При инициализации она прин и мает значение 80 (для совместимости с продуктами Oracle ), но в про грамме ее можно устанавливать произвольным об разом . $ora_trunc Так как Oraperl не может точно определять длину значений типа LONG , возникают ситуации , когда значение $ora_long недостаточно для хранения полученных данных . В таком случае , если у &ora_fetch есть необязательный второй параметр , происходит обрезание данных . Если второй параметр опущен , то вместо него используется значение $ora_trunc . $ora_errno Содержит код ошибки произошедшей при последнем вызове какой-либо функции . Есть два интересных случая , касающихся &ora_fetch() . В первом случае , есл и произошло обрезание данных типа LONG или LONGRAW и обрезание было разрешено , то гда выполнение этой функции полностью успешно , но $ora_errno при нимает значение 1406, для индикации того , что произошло обрезание . Во втором случае , если &ora_fetch() возвратила false , то $ora_errno принимает значение 0 в случае конца данных или код ошибки , есл и действительно произошла ошибка . $ora_errstr Содержит сообщение об ошибке , соответствующее значению $ora_errno . $ora_verno Содержит версию Oraperl в формате v.ppp, где v - основной н омер версии , а ppp - patchlevel. 6.2.1.4 Переменные дл я подстановки Oraperl позволяет SQL выражению содержать обращение к пере менным языка Perl . Они состоят из двоеточия и следующего за ним номера . Например : $csr = &ora_open($lda,"insert into tel values(:1,:2)"); Эти два имени :1 и :2 называются переменными дл я подстановки . Функция &ora_bind() используется для привязывания перем енных к их значениям . &ora_bind($csr, "Annette","3-222-2-22-22-22"); &ora_bind($csr,$name,$telephone); Номера переменных должны следовать в порядке возрастания н ачиная с 1, так как &ora_bind выполняет подстановку именно в так ом порядке . 6.3 Написание м од улей CGI Язык Perl очень ш ироко используется при написании исполняемых модулей CGI (Common Gateway Interface) для Web. Это обусловлено прежде в сего тем , что Perl предоставляет разработчикам пр остые и удобные средства обработки текста и взаимодействия с ба зами данных . Н аша цель - лишь дать пример использования Perl для написания CGI-модуля . Рассмотрим простую по дпрограмму разбора входного потока CGI-программы (при передаче параметров используется метод POST ). #!/usr/local/bin/perl sub Print $len = 100; $buf = ""; read(STDIN, $buf,$len); # считываем из стандартного потока ввода # в переменную $buf количество символов # $len @ar = split(/[&=]/,$buf); # разбиваем строку в массив строк, # разделителями служат & и =. $output = "Content-type: text/html\n\n # п осылает тип MIME передаваемого докуме нта Result

Hi there



"; $i = 0; while ($i <= $#ar) $ar[$i] =~ s/\+/ /g; # заменяем в элементах массива + на пр обел $output .= "$ar[$i]\n"; # конкатенация переменной $output с # элементом массива $i++; $output .="
"; # завершаем HTML страницу print $output; eval &Print; # выполняем подпрограмму осуществляющую # считывание , обработку и вывод информаци и В данном приме ре был пр оиллюстрирован случай считывания параметров из входного потока . Если парам етры передаются CGI-модулю в командной строке , то они помещаются в служебный массив @ARGV . Например , если параметры пишуться в URL: http://www.host.ru/cgi-bin/name.cgi?123+resource+ time+12 . Как видно из примера , написать CGI-модуль на Perl совсем не сложно . Суще ствуют также различные модули для облегчения написания CGI. Документацию по ним и сами модули доступны на сервере www.perl.com 6.4 Обработка ф айлов формата DBF Для взаимодействи я с файлами этого формата существует спец иальный модуль - Xbase.pm На текущий момент поддерживается только во зможность чтения таких файл ов . Этот мо дуль подключается стандартным образом : use Xbase; Новый Xbase объе кт создается следующим образом : $database = new Xbase; Будет создан о бъект $database , который в дальнейшем будет использоваться для взаи модействия со всевозможными методами , кот орые поддерживает модуль . Доступ к базе да нных осуществляется следующим образом : $database->open_dbf($dbf_name,$idx_name); Мы ассоциировали DBF-файл и необязательный индексный файл с объектом . Чтобы определить тип (database type) можно сделать следующее : print $database->dbf_type; Вернется строка , которая , если Xbase файл открыт , будет содержать значение DBF3, DBF4 ил и FOX. Чтобы узнать дату последнего обновления делается следующее : print $database->last_update; Возвращает строку с датой. Чтобы узнать но мер последне й записи можно сделать следующее : $end=$database->lastrec; Вернется номер последней записи в файле с базой данны х. Информацию о статусе базы данных можно посмотреть следующим образом : $database->dbf_stat; В стандартный выходной поток будет на печатана информаци я о статусе и структуре базы данных . Э тот метод работает аналогично команде display status . Посмотреть информацию о статусе индексного файла можно использ уя метод idx_stat : $database->idx_stat; Печатает в ста ндартный выходной поток (STDO UT) информацию о статусе открытого IDX-файла. Для того чтобы п ерейти на начало файла есть метод go_top : $database->go_top; Передвигает курсо р чтения на физическое начало файла,если и ндексы не существуют и на первую запись , соответствующую порядку , который задается индексом , в противоположном случае. Для того чтобы перейти на конец файла есть мето д go_bottom : $database->go_bottom; Передвигает курсо р чтения на физический конец файла,если ин дексы не существуют и на последнюю запись , соответствующую порядку , который задается индексом , в противоположном случае. Чтобы пер ейти на следующую запись есть метод go_next : $database->go_next; Эквивалентно кома нде skip 1 , которая п ередвигает курсор на следующую запись. Чтобы перейти на предыдущую запись есть метод go_pr ev : $database->go_prev; Эквивалентно кома нде skip -1 , которая п ередвигает курсор на предыдущую запись. Есть возможность осуществить поиск по заданному кл ючу : $stat=$database->seek($keyvalue); Эта команда ус танавливает курсор на первую запись , соответс тву ющую данному ключу . Но в данном случае база данных должна быть открыта с соответствующим индексом , в противоположном случае будет выдано сообщение об ошибке и исполнение прекратиться . Возвращается значени е , содержащее информацию о том , был ключ найден или нет. Чтобы узнать номер записи , на которой стоит курсор можно использовать следующую команду : $current_rec=$database->recno; Метод bof возвращает значение true , если курсор находит ся в самом начале файла . if ($database->bof) print " At the very top of the file \n"; Аналогично действ ует метод eof : if ($database->eof) print " At the very end of the file \n"; Чтобы прочитать содержимое какого-либо поля записи можно по ступить так : print $database->get_field("NAME"); Возвращает строку с содер жимым поля . Если данная за пись помечена для удаления , то использует псевдоимя поля _DELETED . Чтобы прочитать значения полей записи в массив можно поступить так : @fields = $database->get_record; В массиве они будут располагаться в такой же последова тельнос ти , как и в базе данных. Для закрытия базы данных используется метод close_dbf . $database->close_dbf; Закрывает файл с базой данных , индексами и комментариями . В завершение приведем небольшой пример про граммы , которая распечатывает статус базы дан ных и ин дексного файла , а также да ту последнего обновления и количество записей в базе данных . #!/usr/bin/perl use Xbase; # подключение модуля $database = new Xbase; # создание объекта $d = "/home/smit/employee.dbf"; # имя файла с базой $i = "/home/smit/employee. cdx"; # имя индексного файла $database->open_dbf($d,$i); # открываем базу данных $database->dbf_stat; # печатаем статус и структуру # базы данных $database->idx_stat; # печатаем статус и структуру # индек сов @fields = $database->get_record; print @fields,"\ n"; # печатаем содержимое текущей записи print $database->last_update, "\n"; # печатаем дату последнего о бновления $end = $database->lastrec; print $end; #печатаем номер последней записи
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
По статистике, 5 из 6 матрёшек чувствуют себя частью чего-то большего.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Использование языка Perl", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru