私はPerlディストリビューションのbase.pm
のソースを見ていますが、 "非実際的な"モジュールとは区別されません。 use base
が「プラグマ」の場合、基本的にはuse Foo
とはどのような違いがありますか?Foo
はどのモジュールですか?モジュールを実用的なモジュールにするには?
8
A
答えて
7
プラグマのための固体定義はありません。公式に近いものはperlpragmaです。
- これらは通常、パーサーの言語や動作を変更します。
- 通常、その効果はレキシカルスコープです。
私は個人的には、これらの要件であると考えて(そしてperlpragmaがあまりにもないようです)が、コアモジュールvarsとsubsは、その効果はレキシカルスコープされていなくてもプラグマように文書化されています。
baseとlibのいずれも一致しません。彼らがしているのは、 "Perl自体"に情報を提供することです。私はプラグマとしての資格もあると思います。
私のモジュールuse syntax qw(loop);
は実用的だと考えています。
1
名前は多くのコンテキストでよく使われますが、通常、プラグマはヒントのハッシュ%^H
を使用するものと考えています(perldoc perlpragmaに記載されています)。つまり、主な違いは、アクションがコンパイル時に存在しなければならないということです。 use
が動作し、require
(BEGINには含まれていません)は動作しません。これは(この定義による)「実用的なモジュール」と他のモジュールとの間の重要な違いです。この定義では、vars
,subs
,base
またはlib
のいずれもがプラグマではありません。
関連する問題
- 1. 動的にperlモジュールを使用する
- 2. 他のモジュールを実行するVBAモジュール
- 3. GHC 7.4.2は、動的に私が動的にモジュールをロードして実行しようとしているモジュール
- 4. モジュールをGuileで使用するには? `$ guile copy.scm;エラー:モジュールのコードなし(gnome-2) `
- 5. あるモジュールのリストを別のモジュールから別のモジュールに拡張する - 古いモジュールに行がない?
- 6. Pythonモジュールを動的にインポートする
- 7. ActiveRecordに動的にモジュールを含める
- 8. 実行時にモジュールをロードするのはなぜですか?
- 9. 実行されたモジュールに相対的なオープンファイル
- 10. 動的なhaskellモジュールをロードする
- 11. js_of_ocamlでモジュールを使用するには?
- 12. 動的なモジュールのロード
- 13. 一般的なPythonモジュール
- 14. AngularJSはモジュールに
- 15. 実行時にすべてのPRISMモジュールをロードするには?
- 16. IPythonで自動的にモジュールをリロードするには?
- 17. pythonでモジュールを選択的にインポートするには?
- 18. argparseモジュール - 実行時にヘルプフォーマットを変更するには?
- 19. 実行時にi18nモジュールをバンドルしてロードするには?
- 20. RequireJS - コンストラクタをモジュールに適用する
- 21. モジュールにモジュールが必要ですか?
- 22. 既存のAMDモジュールをES6モジュールにインポート
- 23. ES6モジュール:以前にエクスポートされたモジュールが「子」モジュールで認識されないのはなぜですか?
- 24. OutputCacheの前にrewiter HTTPモジュールを実行
- 25. blenderにpythonモジュールをインストールするには
- 26. Macにpythonモジュールをインストールするには
- 27. Nodejsモジュールの実装
- 28. Pyinstallerに不要なモジュールが自動的に含まれます
- 29. モジュールをカスタムサイトパッケージディレクトリにインストールする
- 30. 任意のモジュール(ライブラリ)がインポートするモジュールにカスタムエラーを投げる
実際にbase.pmをカバーするのを忘れてしまった。この省略を解決しました。 – ikegami
私のコメントは自分の答えになった:-) –