На этом шаге мы рассмотрим создание и использование конструкторов и деструкторов.
Конструктором в объектно-ориентированном программировании называется специальная подпрограмма, предназначенная для создания объекта. Деструктором называется подпрограмма, вызываемая для выполнения завершающих действий, связанных с ликвидацией объекта: закрытие файлов, вывод сообщений и т. д.
Для создания пакета, как мы знаем, требуется только его объявление (в том числе, предполагаемое по умолчанию объявление package main). Вместе с тем, существуют специальные подпрограммы, выполняющие функции инициализации и завершения пакета. По аналогии их можно назвать конструкторами и деструкторами пакета, хотя никаких пакетов они не создают и не удаляют. Это подпрограммы BEGIN и END. При описании этих подпрограмм ключевое слово sub, необходимое при объявлении обычной подпрограммы, можно опустить. Таким образом, синтаксис подпрограмм BEGIN, END имеет вид:
   BEGIN {block} 
   END {block}
Подпрограмма BEGIN выполняется сразу после своего определения до завершения компиляции оставшейся части программы. Попробуйте запустить интерпретатор perl в интерактивном режиме. Если ему передать строку
print "Привет!";
   BEGIN {print "Привет!"};
Можно определить несколько блоков BEGIN внутри файла, они будут выполняться один за другим в порядке определения.
Подпрограмма END выполняется настолько поздно, насколько это возможно, т.е. при завершении работы интерпретатора. Можно указать несколько блоков END, при этом они будут выполняться в порядке, обратном определению.
  END {
  print "Завершаем работу, до свидания\n";
}
  BEGIN {
    print "Привет, начинаем работу\n";
}
  print "Это тело программы\n"; 
  BEGIN {
  print "Еще один блок BEGIN после блока END\n";
}
Здесь сознательно выбран не совсем естественный порядок следования конструкторов и деструкторов BEGIN и END в тексте программы, чтобы подчеркнуть, в каком порядке они будут вызываться. Вывод выглядит так:
Привет, начинаем работу Еще один блок BEGIN после блока END Это тело программы Завершаем работу, до свидания
На следующем шаге мы рассмотрим автозагрузку.