关于perl全局变量

关于perl全局变量

大家好
请问PERL里怎样做到真正意义上的全局变量,就像我在一个程序里设置另外一个包的变量,然后想其他程序读取到这个变量的值。
$Package::variable  ?
$Package::variableName 这样的变量属于包范围内的全局变量,并不能满足我上面说的要求。。。


QUOTE:
原帖由 andyxie407 于 2008-12-10 15:18 发表
$Package::variableName 这样的变量属于包范围内的全局变量,并不能满足我上面说的要求。。。

包变量就是全局的,看你怎么理解“全局”这两个字了。
恩,明白你的意思,但是我想要的是像C,C++里面那样
非静态全局 变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在 定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它

我想在PERL里要的是非静态全局变量,在多个源文件中都可以访问到值
反正俺是想了好久都没想到法子,高手能否指点下


QUOTE:
原帖由 andyxie407 于 2008-12-10 15:38 发表
恩,明白你的意思,但是我想要的是像C,C++里面那样
非静态全局 变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, ...

所以我说你理解错了。
Perl 里面的包变量就是 C 里面的全局变量。
就是可以在多个文件之间有效的。
Perl 里面的包变量就是 C 里面的全局变量?表示怀疑呵呵
不对吧,我实验过,定义一个包,里面有$Environment::flag 变量 default值是0,然后有2个程序来访问它,一个是设置它的值为999,另外一个来访问它,并不能读取到999 ,而是0,这说明$Environment::flag 不是非静态全局变量


QUOTE:
原帖由 andyxie407 于 2008-12-10 15:42 发表
然后有2个程序来访问它,一个是设置它的值为999,另外一个来访问它

C 里面的全局变量就可以被两个程序共享了吗?
你说的那是共享内存吧。
先想清楚你要干什么。

另外,确保两边都引用了同一个包。
是,吗的,自己搞糊涂了,谢谢