- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:値を外部から呼び出したい)
use strict; use warnings;を付けた場合なぜ、エラーメッセージが表示されるのか。外部から値の呼び出しの最適な方法はあるか。
このQ&Aのポイント
- use strict; use warnings;を付けた場合、エラーメッセージが表示される理由として、変数のスコープが厳密に制限されるためです。
- 変数のスコープが厳密に制限されるため、外部からの変数の呼び出しはパッケージの指定が必要となります。
- 外部から値のみを呼び出す場合、グローバル変数や環境変数の利用が最適な方法です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
何も指定せずに宣言された変数はそのファイル内でのみ有効なローカル変数のように扱われます。 なのでfile1.plでは$xが定義されていないためエラーとなります。 グローバル変数として宣言するには our を使います。 file1.pl で、まず our $x; を宣言しておいて、file2.pl で our $x = 12; とすればご希望の通りに動くと思います。 他の方法としては、file2.pl をテキストファイルとして読み込み、eval を実行すれば同じく動くと思います。(あまりおすすめしません)
お礼
ourの存在すら知りませんでした。お恥ずかしい。 初心者の稚拙な質問にご回答ありがとうございました!