免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 14095 | 回复: 21
打印 上一主题 下一主题

关于perl全局变量 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-10 14:38 |只看该作者 |倒序浏览
大家好
请问PERL里怎样做到真正意义上的全局变量,就像我在一个程序里设置另外一个包的变量,然后想其他程序读取到这个变量的值。

论坛徽章:
0
2 [报告]
发表于 2008-12-10 14:41 |只看该作者
$Package::variable  ?

论坛徽章:
0
3 [报告]
发表于 2008-12-10 15:18 |只看该作者

NO

$Package::variableName 这样的变量属于包范围内的全局变量,并不能满足我上面说的要求。。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2008-12-10 15:22 |只看该作者
原帖由 andyxie407 于 2008-12-10 15:18 发表
$Package::variableName 这样的变量属于包范围内的全局变量,并不能满足我上面说的要求。。。

包变量就是全局的,看你怎么理解“全局”这两个字了。

论坛徽章:
0
5 [报告]
发表于 2008-12-10 15:38 |只看该作者
恩,明白你的意思,但是我想要的是像C,C++里面那样
非静态全局 变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在 定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它

我想在PERL里要的是非静态全局变量,在多个源文件中都可以访问到值

论坛徽章:
0
6 [报告]
发表于 2008-12-10 15:39 |只看该作者
反正俺是想了好久都没想到法子,高手能否指点下

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2008-12-10 15:39 |只看该作者
原帖由 andyxie407 于 2008-12-10 15:38 发表
恩,明白你的意思,但是我想要的是像C,C++里面那样
非静态全局 变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, ...

所以我说你理解错了。
Perl 里面的包变量就是 C 里面的全局变量。
就是可以在多个文件之间有效的。

论坛徽章:
0
8 [报告]
发表于 2008-12-10 15:42 |只看该作者
Perl 里面的包变量就是 C 里面的全局变量?表示怀疑呵呵
不对吧,我实验过,定义一个包,里面有$Environment::flag 变量 default值是0,然后有2个程序来访问它,一个是设置它的值为999,另外一个来访问它,并不能读取到999 ,而是0,这说明$Environment::flag 不是非静态全局变量

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2008-12-10 15:44 |只看该作者
原帖由 andyxie407 于 2008-12-10 15:42 发表
然后有2个程序来访问它,一个是设置它的值为999,另外一个来访问它

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

另外,确保两边都引用了同一个包。

论坛徽章:
0
10 [报告]
发表于 2008-12-10 15:49 |只看该作者
是,吗的,自己搞糊涂了,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP