Язык программирования Perl | страница 35




Во второй форме блок предложений в конструкции eval, как и в конструкции do, становится выражением. Он компилируется обычным образом и выполняется во время работы программы, но возможные ошибки его выполнения также не приводят к аварийному завершению программы. Причину ошибки можно узнать из специальной переменной $@, а значением eval будет значение последнего предложения в блоке. Вот пример обработки ошибок в выражении eval:


> $result = eval { # выполнить блок $x = 0; $y = 5; $z = $y / $x; # здесь будет деление на 0 }; # завершаем предложение точкой с запятой unless ($@) { # проверить специальную переменную на ошибки print "Выражение вычислено: $result"; } else { print "Ошибка вычисления: $@"; }


В программе на Perl, помимо предложений и комментариев, применяются прагмы - указания компилятору и исполняющей системе выполнить какие-либо действия или начать работать в определенном режиме. Прагмы позволяют управлять поведением программы при компиляции и выполнении, их довольно много, и полное их описание можно найти в документации. Очень рекомендуется в начало любой программы включать прагмы, отвечающие за более тщательную проверку правил и ограничений:


> use strict; # ограничить применение небезопасных конструкций use warnings; # выводить подробные предупреждения компилятора use diagnostics; # выводить подробную диагностику ошибок


Дополнительная диагностика компилятора поможет избежать многих ошибок при выполнении программы. Обычно прагмы могут включаться в любом месте программы с помощью ключевого слова use и выключаться при необходимости с помощью ключевого слова no, например:


> use integer; # включить целочисленные вычисления print 10 / 3; # результат: 3 no integer; # отключить целочисленные вычисления print 10 / 3; # результат: 3.33333333333333


С помощью прагмы use constant можно определять в программе именованные константы, которые по традиции записываются заглавными буквами. Это делается таким образом:


> use constant PI => 3.141592653; # число пи


С помощью прагмы use locale в программе включается действие национальных системных установок для некоторых встроенных функций, например, при работе со строками на русском языке:


> use locale;


По ходу изучения материала следующих лекций будут рассмотрены другие полезные прагмы, а в лекции 13 будет описано применение use для подключения внешних модулей.

Материал этой лекции иллюстрирует упоминавшийся в лекции 1