免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: andyxie407
打印 上一主题 下一主题

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

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
11 [报告]
发表于 2008-12-10 15:56 |只看该作者
原帖由 flw 于 2008-12-10 15:39 发表

Perl 里面的包变量就是 C 里面的全局变量。
就是可以在多个文件之间有效的。

Perl 里面的 package variable 和 C 中的 global variable 还是有区别的。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
12 [报告]
发表于 2008-12-10 15:57 |只看该作者
原帖由 MMMIX 于 2008-12-10 15:56 发表

Perl 里面的 package variable 和 C 中的 global variable 还是有区别的。

啥区别?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
13 [报告]
发表于 2008-12-10 16:04 |只看该作者
原帖由 flw 于 2008-12-10 15:57 发表

啥区别?

引用/使用的方式。在 C 中 glboal variable 可以直接用名字访问,但是 Perl 中 package 没有 export 的 package variable 就只能用它的全名 $PACKAGE::var_name 访问了。

从实现来说,C 的 global variable 共享一个名字空间,但是 Perl 中的 package variable 却是各有各的名字空间。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2008-12-10 16:07 |只看该作者
原帖由 MMMIX 于 2008-12-10 16:04 发表

引用/使用的方式。在 C 中 glboal variable 可以直接用名字访问,但是 Perl 中 package 没有 export 的 package variable 就只能用它的全名 $PACKAGE::var_name 访问了。

从实现来说,C 的 global variabl ...

你只要把包变量的全限定名称和 C 的全局变量名看作是一个东西就行了。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
15 [报告]
发表于 2008-12-10 18:20 |只看该作者
原帖由 flw 于 2008-12-10 16:07 发表

你只要把包变量的全限定名称和 C 的全局变量名看作是一个东西就行了。

这样看也无不可

论坛徽章:
0
16 [报告]
发表于 2008-12-13 11:23 |只看该作者
没想到大家还在这里讨论呵呵,我原来的本意是想自己做个像$ENV{},$^O这样真正意义上的变量,每个程序都可以,估计PERL里好象没有这样的功能,有的就说说呀。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
17 [报告]
发表于 2008-12-13 11:31 |只看该作者
原帖由 andyxie407 于 2008-12-13 11:23 发表
没想到大家还在这里讨论呵呵,我原来的本意是想自己做个像$ENV{},$^O这样真正意义上的变量,每个程序都可以,估计PERL里好象没有这样的功能,有的就说说呀。

都不知道你想干啥。
不过隐约看得出来似乎你只是在追求一些没有实际意义的东西。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
18 [报告]
发表于 2008-12-13 13:30 |只看该作者
原帖由 andyxie407 于 2008-12-13 11:23 发表
没想到大家还在这里讨论呵呵,我原来的本意是想自己做个像$ENV{},$^O这样真正意义上的变量,每个程序都可以,估计PERL里好象没有这样的功能,有的就说说呀。

你这是要修改 Perl 解释器 perl 的行为,那很简单,直接改它就完了。

另外,像 %ENV,$^O 这些变量,要么是通过环境获取,要么是编译 perl 时搜集到的信息,它们并不能用来在各个不同的程序之间通信,即使是单向通信。在现代的基于进程的 os 上,一个进程想要给在它结束后启动的进程留一些信息,必须通过一些持续存在的(至少是在接收信息的进程启动之前存在的)的介质,例如文件,例如共享内存。你设想的这种变量的方式根本就无法实现,这不是 Perl 本身的限制,而是 OS 的限制。当然,这种限制也是可以避过的,在一些开发环境中,例如 Smalltalk 的 Squeak,它在退出时会将当前环境的所有状态信息保存在一个文件中,启动时加载这个文件,环境就回到和退出前一样的状态。

[ 本帖最后由 MMMIX 于 2008-12-13 13:45 编辑 ]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
19 [报告]
发表于 2008-12-13 13:46 |只看该作者
原帖由 flw 于 2008-12-13 11:31 发表

都不知道你想干啥。
不过隐约看得出来似乎你只是在追求一些没有实际意义的东西。

对一些底层的东西没有基本的概念,自然会有一些奇思妙想,这也不足为奇。

论坛徽章:
0
20 [报告]
发表于 2008-12-13 13:56 |只看该作者
用不了全局变量  就用临时文件存 何必那么费劲
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP