1

在我的工作场所,我们有一个门户网站,其中包含一些核心文件,通过这些文件可以调用其他文件。因此,每个人都使用并在核心文件中定义的用户名和项目 ID 的一些变量。现在我必须避免使用 use strict 来使用相同的变量,但我不想这样做。那么如何获取核心文件中的变量列表呢?或者在基本情况下,如何在使用严格时获取某个变量 $projectId 中的值。

4

1 回答 1

4

任何未声明和词法范围my的变量都是包变量。您可以通过使用包限定变量名来引用包变量而不会strict抱怨。因此,如果“核心文件”$projectid在默认main包中定义了一个变量,您可以安全地引用它

$main::projectid
$::projectid         ($::foo  is the same thing as $main::foo)

或者如果“核心文件”包含package类似的语句package ProjectData;,那么您将使用

$ProjectData::projectid

如果全局变量来自当前包(例如,核心文件和您的脚本都使用默认包),那么您也可以通过使用关键字strict声明变量来满足。our

package main;
our $projectid;
# now  $projectid  refers to $main::projectid
...
于 2013-10-31T05:13:26.830 回答