Perl:如何获取会话文件中使用的列表变量

时间:2013-10-31 04:31:46

标签: perl

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

1 个答案:

答案 0 :(得分: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
...