1


おそらく私の質問は単純なものですが、ドキュメントで答えを見つけることができず、誰かが助けてくれることを願っています。

Q.:ファイル名とファイルシステムパスをマッピングして'd/ require ' dモジュールを使用するルールと、パッケージ宣言に使用される名前はどれですか。特に、ドットやコンマなどの非標準の記号が使用されている場合はどうでしょうか。また、これらのシナリオに関連するmod_perlのPerlModuleおよびPerlRequireApacheディレクティブに対する同様の答えを見つけることもできます。

具体的な例として、次のようなドットとコンマを使用したパスにmod_perlプロジェクトがあります。

/var/www/projects/my.awesome.project,with,comma/code
そして、Apacheのconfファイルにモジュールのコードをロードする必要があります。

PerlModule my.awesome.project、with、comma :: code :: MyModule

私も自分のパッケージを次のように宣言する必要があります

パッケージmy.awesome.project、with、comma :: code :: MyModule;

(@INCから/ var / www / projectsへのカスタムパスの1つ)

もちろん、これは機能しません。これらのパスは、他のパスにマップする必要があります。または、それはまったく不可能であり、誰もが英数字記号とアンダースコアのみを含むパスを使用する必要がありますか?

ヘルプ/回答をよろしくお願いします。

4

1 に答える 1

5

Perl パッケージ名は識別子です。つまり、文字またはアンダースコアで始まり、文字、数字、およびアンダースコアのみを含む必要があります。で区切られた複数の識別子にすることもできます::。唯一のファイル名マッピングは、(またはシステム ディレクトリ セパレータが何であれ)::に変換されることです。/パッケージ名にカンマとピリオドは使用できません。

@INCにはその制限がないため、それに追加/var/www/projects/my.awesome.project,with,commaして、パッケージに名前を付けることができますcode::MyModule。しかし、ディレクトリ名には英数字とアンダースコアだけを使用する方がよいでしょう。

于 2011-04-13T15:21:39.887 に答える