• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:値を外部から呼び出したい)

use strict; use warnings;を付けた場合なぜ、エラーメッセージが表示されるのか。外部から値の呼び出しの最適な方法はあるか。

このQ&Aのポイント
  • use strict; use warnings;を付けた場合、エラーメッセージが表示される理由として、変数のスコープが厳密に制限されるためです。
  • 変数のスコープが厳密に制限されるため、外部からの変数の呼び出しはパッケージの指定が必要となります。
  • 外部から値のみを呼び出す場合、グローバル変数や環境変数の利用が最適な方法です。

質問者が選んだベストアンサー

  • ベストアンサー
  • luka3
  • ベストアンサー率72% (434/598)
回答No.1

何も指定せずに宣言された変数はそのファイル内でのみ有効なローカル変数のように扱われます。 なのでfile1.plでは$xが定義されていないためエラーとなります。 グローバル変数として宣言するには our を使います。 file1.pl で、まず our $x; を宣言しておいて、file2.pl で our $x = 12; とすればご希望の通りに動くと思います。 他の方法としては、file2.pl をテキストファイルとして読み込み、eval を実行すれば同じく動くと思います。(あまりおすすめしません)

kimufusi
質問者

お礼

ourの存在すら知りませんでした。お恥ずかしい。 初心者の稚拙な質問にご回答ありがとうございました!

関連するQ&A

専門家に質問してみよう