私はlibrary1.pmのlibrary2.pmから関数(func1)を呼び出しています。 library1で "use library2"と宣言したので、この関数は単に& func1()と呼ばれています。しかし、これは未定義のサブルーチンとしてエラーを投げています。しかし、私はその機能を "& library2 :: func1"と呼んでいます。ここにPerlのパッケージがないのですか?perl&library1 :: func1で定義されていないサブルーチン
答えて
関数をエクスポートしましたか?コードを投稿していないので、あなたの欠けていることを伝えるのは難しいです!私はそれが何であるかを知っていれば、何が欠けているのかを説明することができます。代わりに、必要なものの例を整理しなければなりません。
library2.pm
が含まれている必要があります
package library2;
use strict;
use warnings;
use Exporter qw(import);
our @EXPORT = qw(func1);
...
sub func1 { ... }
...
1;
library1.pm
含める必要があります。ところで
package library1;
use strict;
use warnings;
use library2;
...
func1(...)
...
1;
を、言語の名前は、Perl、ないPERLです。頭字語ではありません。
ところで、サブコールの前で&
を使用しないでください。 Perlにあなたが呼んでいるサブのプロトタイプを無視するように指示する理由はありません。
ところで、小文字のモジュール名は技術的にはPerlで使用するために予約されています。しかし、もっと重要なのは、プラグマモジュール(言語に影響を与えるモジュール、およびその結果として語彙的にスコープが変更されるモジュール)の場合、大文字小文字のモジュールを予約することです。小文字のモジュール名は避けてください。ところで
、それは潜水艦が定義されている場所を確認する方が簡単だし、それはモジュールのデフォルトの輸出た場合に驚きを防ぐため
use library2 qw(func1);
は、一般的に
use library2;
よりも優れていますこれまでに変わった。
上記の構文はあなたにとって間違いありません。しかし、library2 :: func1を指定せずにlibrary1のfunc1を呼び出すと、エラーが発生します。私はそれの正確な理由を知りたいと思っており、あなたの応答に感謝します。 –
コードを投稿していないので、何が欠けているのか分かりにくいです!私はそれが何であるかを知っていれば、何が欠けているのかを説明することができます。代わりに、必要なものの例を整理しなければなりません。問題のデモンストレーションを行う場合は、より多くの情報を提供することができます。あるいは、少なくとも私があなたのコードから抜けている行を教えてください。 – ikegami
それは問題ありません。どうもありがとうございました –
- 1. PERL PROBLmy $ str1 = 0定義されていない限り$ str1;
- 2. サブルーチン内で定義された変数(長)変更が更新されない
- 3. モジュールのリロードとPerlでのサブルーチンの再定義
- 4. Perl:未定義のサブルーチン&main :: gmdate?ここで
- 5. Perlサブルーチンでローカルtemp変数を定義する場所は?
- 6. Perlサブルーチン宣言予期しないシンボル
- 7. Perlのサブルーチン内で補間されていない渡された文字列を補間する
- 8. Wordpressのテンプレートで定義されていない定義リスト
- 9. サブルーチンの定義$ mean
- 10. サブルーチンがPerlの
- 11. Perlサブルーチンのドキュメント
- 12. サブルーチンのPerl
- 13. ionic 3 - ランタイムエラー関数が定義されていない - ReferenceError:HTMLButtonElement.onclickで関数が定義されていない
- 14. 定義されていないオフセット:1
- 15. 定義されていないクラスエラー、jQuery
- 16. 定義されていないインデックスエラー(PHP)
- 17. stockChartが定義されていない(...)
- 18. エンティティコンポーネントシステム定義されていないシンボル
- 19. 定義されていない列データフレームエラー
- 20. が定義されていない[Colsed]
- 21. PHP定義されていないインデックス
- 22. $が定義されていないJavascript
- 23. ルートが定義されていない
- 24. アレイタイプが定義されていない
- 25. 定義されていないドロップダウンオプション
- 26. ルート[user.update]定義されていない
- 27. モデルが定義されていない
- 28. 定義されていないメソッド `user_changed? '
- 29. $定義されていないエラー
- 30. 定義されていないオフセット:1
問題の最小限のデモンストレーションをご提供ください。 – ikegami