Особенности Perl


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); # отключение от базы данных