Иллюстрированный самоучитель по Perl



         

Функции для работы со строками - часть 7


$0ffset = -7;

$Substr = substr $Str, $Offset, 7;

print "Отрицательное смещение $Offset, длина подстроки +7, результат:\n";

print "$Substr\n";

f Отрицательное смещение -7, длина подстроки -1

$Substr = substr $Str, $0ffset, -1;

print "Отрицательное смещение $Offset, длина подстроки -1, результат:\n";

print "$Substr\n";

t Замена подстроки

$Repl = "бокалы";

$Substr = substr $Str,$Offset,7,$Repl;

print "В строке '$Str' слово '$Repl' заменяет слово '$Substr'\n";

Вывод выглядит следующим образом:

Исходная строка:'Карл у Клары украл кораллы'

Смещение 13, длина подстроки не задана, результат:

украл кораллы

Смещение 13, длина подстроки +5, результат:

украл

Смещение 13, длина подстроки -1, результат:

украл коралл

Отрицательное смещение -7, длина подстроки +7, результат:

кораллы

Отрицательное смещение -7, длина подстроки -1, результат:

коралл

В строке 'Карл у Клары украл бокалы' слово 'бокалы' заменяет слово 'кораллы'

Функция eval () eval EXPR

рассматривает параметр EXPR как текст Peri-программы, компилирует его и, если не обнаруживает ошибок, выполняет в текущем вычислительном окружении. Если параметр EXPR отсутствует, вместо него по умолчанию используется глобальная переменная $_. Компиляция программного кода EXPR осуществляется при каждом вызове функции eval () во время выполнения основной программы. Если выполнение мини-программы EXPR завершается успешно, функция eval о возвращает значение последнего выражения, вычисленного внутри EXPR. Если код EXPR содержит синтаксические ошибки, или обращение к функции die (}, или возникла ошибка во время выполнения EXPR, то в специальную переменную $@ помещается сообщение об ошибке, а функция eval () возвращает неопределенное значение.

Замечание

Основным применением функции eval о является перехватывание исключений. Исключением мы называем ошибку, возникающую при выполнении программы, когда нормальная последовательность выполнения прерывается (например, при делении на нуль). Обычной реакцией на исключение является аварийное завершение программы. Язык Perl предоставляет возможность перехватывать исключения без аварийного выхода. Если исключение возникло в основной программе, то программа завершается. Если ошибка возникла внутри мини-программы функции eval (), то аварийно завершается только функция eval(), а основная программа продолжает выполняться и может реагировать на возникшую ошибку, сообщение о которой ей доступно через переменную $@.




Содержание  Назад  Вперед