Пакеты
Perl поддерживает механизм альтернативного именного пространства для каждого
отдельного пакета. Обычная программа является пакетом с именем main. Можно
ссылаться на переменные или дескрипторы файлов из других пакетов посредством
использования префикса перед именем переменной, состоящего из имени пакета и
двойного двоеточия: $Package::Variable. Если имя пакета нулевое, то предполагается
использование переменной из main пакета. То есть $::sail эквивалентно
$main::sail. Пакеты могут включать в себя другие пакеты, в таком случае
чтобы обратиться к переменной нужно применить описанное обозначение рекурсивно:
$OUTER::INNER::var.
В пакете могут содержаться только переменные, чьи имена начинаются с буквы или
подчерка, остальные переменные содержатся в пакете main. Кроме того
зарезервированные переменные, как то STDIN, STDOUT, STDERR, ARGV, ARGVOUT, ENV,
INC и SIG также содержатся в главном пакете.
package mypack;
sub main::mysub {
...
}