Создание серверных приложений на языке PERL

П2.1.1 Введение


Perl - интерпретируемый язык, приспособленный для обработки произвольных текстовых файлов, извлечения из них необходимой информациии и выдачи сообщений. Perl также удобен для написания различных системных программ. Этот язык прост в использовании, эффективен, но про него трудно сказать, что он элегантен и компактен. Perl сочитает в себе лучшие черты C, shell, sed и awk, поэтому для тех, кто знаком с ними, изучение Perl-а не представляет особого труда. Cинтаксис выражений Perl-а близок к синтаксису C. В отличие от большинства утилит ОС UNIX Perl не ставит ограничений на объем обрабатываемых данных и если хватает ресурсов, то весь файл обрабатывается как одна строка. Рекурсия может быть произвольной глубины. Хотя Perl приспособлен для сканирования текстовых файлов, он может обрабатывать так же двоичные данные и создавать .dbm файлы, подобные ассоциативным массивам. Perl позволяет использовать регулярные выражения, создавать объекты, вставлять в программу на С или C++ куски кода на Perl-е, а также позволяет осуществлять доступ к базам данных, в том числе Oracle.
Ниже приводится в качестве примера небольшая программа, которая осуществляет доступ к Oracle. #! /usr/local/bin/perl -w

# запуск с ключом печати ошибок.

use Oraperl;

# подключение модуля для работы с Oracle

$system_id = 'T:bdhost.somwere.com:Base';

# описание имени базы данных

$lda = &ora_login($system_id, 'scott','tiger');

# подключение к базе данных пользователя

# scott с паролем tiger

$statement = 'create table MYTABLE

(NAME char(10), TITLE char(20),

ORGANIZATION varchar2(256))';

# SQL команда создания таблицы MYTABLE



$csr = &ora_open($lda, $statement)

|| die $ora_errstr;

# открытие курсора csr, если это невозможно,

# то осуществляется выход и печать сообщения об ошибке.

&ora_close($csr); # закрытие курсора

open(FL, '/home/my_home_directory/my_file')

|| die "Can't open file \n";

# открытие файла, если это невозможно,

# то выход с печатью сообщения об ошибке

while ($string = <FL>) {

# чтение входного потока из файла с дескриптором FL

@array = split(/\//,$string);

# считанная строка разбивается в массив

# строк, разделителем служит слеш

$st = 'insert into MYTABLE values(:1,:2,:3)';

# SQL команда помещения в таблицу некоторых значений

$csr = &ora_open($lda,$st) || $ora_errstr;

# открытие курсора или печать

# сообщения об ошибке и выход

&ora_bind($csr,$array[0],$array[1],$array[2]);

# привязка значений переменных к величинам, которые

# требуется поместить в таблицу

&ora_close($csr); # закрытие курсора

}

close FL; # закрытие файла

&ora_commit($lda);

# завершение транзакции в базе данных

&ora_logoff($lda);

# отключение от базы данных



Содержание раздела