名前空間またはパッケージは同じですか? パッケージしかないPerlを使用しています。モジュールを含む他のプログラミング言語があることは知っています。
違いは何ですか?
packageディレクティブは名前空間を設定します。そのため、名前空間はパッケージとも呼ばれます。
Perl にはモジュールの正式な定義がありません。さまざまな違いがありますが、以下は大部分のモジュールに当てはまります。
.pm。packageこのファイルには、コード全体をカバーする単一の宣言が含まれています。(ただし、以下を参照してください。)packageます。.pm複数のパッケージを含むファイルに遭遇することは珍しくありません。それが単一のモジュールであるか、複数のモジュールであるか、またはその両方であるかは議論の余地があります。
Namespace別個の一連の識別子のコンテナを意味する一般的なコンピューティング用語です。同じ識別子が異なる名前空間に独立して表示され、異なるオブジェクトを参照できます。オブジェクトを明確に識別する完全修飾識別子は、名前空間と識別子で構成されます。
packagePerl は、キーワードを使用して名前空間を実装します。
Perlモジュールはまったく別のものです。useこれは、キーワードを使用して任意のプログラムに組み込むことができる Perl コードの一部です。ファイル名は.pm- for Perl Module - で終わる必要があり、含まれるコードにはpackage、パスを含むファイルの名前と同等のパッケージ名を使用するステートメントが含まれている必要があります。たとえば、 というファイルに記述されたモジュールには、 のようなステートメントがMy/Useful/Module.pm必要です。packagepackage My::Useful::Module
あなたが考えていたのは、これも一般的なコンピューティング用語であり、今回はオブジェクト指向データのタイプを意味するクラスです。Perl はそのパッケージをクラス名として使用し、オブジェクト指向モジュールにはコンストラクターサブルーチン (通常は呼び出される)があり、オブジェクト指向の方法で動作させるために使用newされたデータへの参照を返します。blessedすべての Perl モジュールがオブジェクト指向モジュールであるとは限りません。サブルーチンの単純なライブラリである場合もあります。