У вас уже есть хороший ответ, но, возможно, это тоже будет полезно.
Декларация our
объединяет аспекты my
и use vars
. Он работает аналогично use vars
в том смысле, что объявляет переменные пакета; однако переменные, объявленные таким образом, имеют лексическую область видимости и не могут быть доступны вне области, в которой они были объявлены (если вы не используете полное имя переменной). Кроме того, переменная, объявленная с our
, видна во всей своей лексической области, даже за пределами пакета .
Вот таблица, которую я добавил в свои заметки Perl некоторое время назад. Например, см. этот ответ SO .
Scope/ Package
Namespace Variable Private New
---------------------------------------------------
my Lexical No Yes Yes
our Lexical Yes No No
use vars Package Yes No No