私は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. SwiftPMでobjective-cモジュールにswiftモジュールを使用するには?
- 3. 実験的なAndroidにモジュールのGradleを適応させる
- 4. GHC 7.4.2は、動的に私が動的にモジュールをロードして実行しようとしているモジュール
- 5. 他のモジュールを実行するVBAモジュール
- 6. モジュール名が変数にある場合にモジュールを実行
- 7. はvuexモジュールを使用する前にvuexモジュール
- 8. モジュールをGuileで使用するには? `$ guile copy.scm;エラー:モジュールのコードなし(gnome-2) `
- 9. クラスをモジュールにエクスポートし、別のモジュールで別のモジュールにインポートするには
- 10. モジュールの単体テストを効率的に実行する
- 11. あるモジュールのリストを別のモジュールから別のモジュールに拡張する - 古いモジュールに行がない?
- 12. ruby-動的にモジュールを定義する
- 13. Pythonモジュールを動的にインポートする
- 14. Angular2モジュールを動的にロードする
- 15. ActiveRecordに動的にモジュールを含める
- 16. 実行時にモジュールをロードするのはなぜですか?
- 17. 実行されたモジュールに相対的なオープンファイル
- 18. 動的なhaskellモジュールをロードする
- 19. 周囲モジュール宣言は、相対的なモジュール名
- 20. js_of_ocamlでモジュールを使用するには?
- 21. NodeJS再帰的にwinregモジュール
- 22. OdooモジュールAは、モジュールAに依存するモジュールBに依存します。
- 23. 子モジュール内にインポートされたモジュールのコンポーネントを使用する
- 24. 動的なモジュールのロード
- 25. 一般的なPythonモジュール
- 26. 特定のモジュールに(モジュールのコレクタである)モジュールを使用して
- 27. Drupalモジュールは自動的に無効になります
- 28. モジュールのないPythonコードをモジュールなしでマシン上で実行する
- 29. 'require'でpromiseを使用してモジュールを動的にロードする
- 30. 「ModuleConcatenation救済:モジュールはECMAScriptモジュールではない」救済措置のメッセージでモジュールを修正するには?
実際にbase.pmをカバーするのを忘れてしまった。この省略を解決しました。 – ikegami
私のコメントは自分の答えになった:-) –