他の言語では名前空間と呼ばれている機能はPerlではパッケージと呼ばれます(※1)。名前空間とは実際の世界の住所のようなものです。日本に「田中達也」さんは何人かいると思いますが、「東京都新宿区3-○-△」の「田中達也」さんはひとりしかいません。住所を指定すればどの田中達也なのかを決定することができます。実際の世界の住所にあたるものが名前空間です。パッケージの宣言パッケージを宣言するにはpackageを使用します。パッケージ名;パッケージ名には裸の文字列を指定します。クォートやダブルクォートで囲った文字列を渡すことはできません。SomeModule;パッケージ名は複数階層にすることができます。「::」で個々のパーツを連結します。Class::Accessor::Fast;現在属するパッケージは__PACKAGE__で取得できます。現在属しているパッケージ名__PACKAGE__デフォルトの名前空間mainPerlではパッケージに属さないという状態はありません。パッケージ宣言を行っていない間はmainというパッケージに属します。デフォルトの名前空間に戻したいときはパッケージ名にmainを指定します。main;パッケージ変数とサブルーチンは特定のパッケージに属するパッケージ変数とサブルーチンは必ず特定のパッケージに属します。これは最初に解説した「山田達也」さん(名前の部分)に該当します。...}パッケージ名までを含めた変数名やサブルーチン名のことを完全修飾名と呼びます。完全修飾名はパッケージ名と変数名(あるいはサブルーチン名)を「::」で連結したものになります。別のパッケージに属していても完全修飾名を使えば、その変数やサブルーチンにアクセスすることができます。完全修飾名$SomeModule::VAR;SomeModule::func();関数を完全修飾名を使って呼び出すサンプルです。File::Basename;File::Basename::basename('xxx/yyy.txt');パッケージ名とモジュールのファイルの構成パッケージ名はモジュールのファイル構成と密接な関連があります。「Foo::Bar::Baz」というモジュール名であれば、それに対応するファイル構成は「Foo/Bar/Baz.pm」になります。「Foo」というディレクトリの中に「Bar」というディレクトリを作り、その中に「Baz.pm」というファイルを作成します。「Baz.pm」の先頭でパッケージ宣言を行います。Foo::Bar::Baz;このような構成にしておくことで、useやrequireでモジュールを検索して読み込むことが可能になります。一般的な言語感覚としてはパッケージという名前でライブラリやモジュールの集まりを連想してしまうと思います。Perlでパッケージといった場合は単に名前空間を意味するだけなので注意しましょう。業務に役立つPerlログ解析など日本語を含むテキスト処理の実践!案内YouTubeでもっと簡単にプログラミングを学ぶならPerlゼミちゃんねるLinuxコマンドを学ぶならLinuxサーバー管理入門Webデザインを学ぶならWebデザイン入門Web開発を始めるななMojoliciousスタートアップブログを作るならGiblogプログラミングの勉強会ならPerl入学式お問合せはこちらPerlは、テキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。Linuxサーバー管理でのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意。Mojoliciousを使ったWebスタートアップも。Perlは、gitやopensslなどUnix/Linuxミドルウェアの支援ツールとして採用されています。このサイトはGiblogで製作されています。