パッケージ

Perlでは、オブジェクト指向関連の機能が後付けで追加された。
その中の機能の一つがパッケージであり、C++名前空間や、Javaのパッケージに相当するものである。

package - パッケージの宣言 - Perl入門ゼミ

パッケージやブロックが変数の所属にどのように影響するかを試す。

パッケージ名を宣言していない場合は、mainパッケージに含まれる。
パッケージ名の宣言があればそのパッケージに含まれ、ブロックが解除されると宣言済みパッケージから抜ける。

$ vi package.pl
$ perl package.pl
100
*main::var
200
*PackageA::var
300
*PackageA::var
400
*PackageB::var
300
*PackageA::var
$

ブロックの中でも、PackageBが宣言されるまでは、PackageA::varにアクセスして値を入れ続け、ブロックを抜けても維持される。

Sample/perl/package/package/src/package at master · bg1bgst333/Sample · GitHub