Директива use strict

Perl старается как можно меньше ограничивать программиста. Но иногда бывает желательно установить более жесткие дисциплинарные рамки; эта задача решается при помощи директивы use strict. Директива представляет собой инструкцию для компилятора, которая содержит какую-либо информацию о коде. В данном случае директива use strict сообщает внутреннему компилятору Perl, что он должен установить более жесткие требования к программированию оставшейся части блока или исходного файла.

Почему это может быть важно? Представьте, что при написании программы вы ввели команду следующего вида:

$bamm_bamm = 3; # Perl создает переменную автоматически

Затем вы продолжаете набирать программу. Введенная команда уходит за верхний край экрана, а вы вводите команду увеличения переменной:

$bammbamm += 1; # Неверное имя!

Обнаружив новое имя переменной (символ подчеркивания учитывается в именах переменных!), Perl создает новую переменную и увеличивает ее на 1. Если вам повезет и вы достаточно умны для того, чтобы включить предупреждения, Perl сообщит, что одно (или оба) из этих глобальных имен используется в программе всего один раз. А если просто умны, окажется, что имена используются многократно, и Perl не сможет вас предупредить.

Чтобы Perl применял более жесткие ограничения, включите директиву use strict в начало программы (или любого блока или файла, в котором должны действовать эти правила):

use strict; # Enforce some good programming rules

Теперь, наряду с другими ограничениями, Perl будет требовать объявления всех новых переменных – обычно с ключевым словом my:

my $bamm_bamm = 3; # Новая лексическая переменная

Если теперь вы допустите ошибку в имени переменной, Perl пожалуется, что переменная с именем $bammbamm не объявлена в программе, а ваша ошибка будет автоматически обнаружена во время компиляции.


$bammbamm += 1;

# Такой переменной не существует:
# Фатальная ошибка компиляции

Конечно, требования распространяются только на новые переменные; вам не придется объявлять встроенные переменные Perl, вроде $_ или @_.3 При включении use strict в уже написанную программу вы обычно получаете целый поток предупреждений, поэтому лучше использовать директиву сразу. Часто говорят, что любая программа длиной более одного экрана текста должна содержать use strict. И мы согласны с этим. В дальнейшем большинство наших примеров (хотя и не все) будет записываться так, как при действии use strict, даже если директива в программу не включается. В частности, мы обычно объявляем переменные с ключевым словом my там, где это уместно. Но даже несмотря на то, что в примерах книги директива use strict часто опускается, мы рекомендуем вам использовать ее в своих программах как можно чаще.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Аргументы
Возвращаемые значения
Вызов пользовательской функции
Вызов функции без &
Нескалярные возвращаемые значения

Вернуться в раздел: Perl / 3. Пользовательские функции