perl中的typeglob(三)

perl中的typeglob(三),第1张

概述在前面几篇,已经详细的阐述了,typeglob和符号表的关系。 typeglob 类似于一种一对多的hash结构。 且讲述了typeglob的用法,包括,别名,use 的import 机制,EXPORTER的原理,实现OO模块中的set/get,对应文件句柄的使用。 后来看完了exporter这一章,又有一点想法和测试,总结一些细节问题。 一 。符号表是一个hash,值是符号名,在当前包中使用,值

在前面几篇,已经详细的阐述了,typeglob和符号表的关系。

typeglob 类似于一种一对多的hash结构。

且讲述了typeglob的用法,包括,别名,use 的import 机制,EXPORTER的原理,实现OO模块中的set/get,对应文件句柄的使用。


后来看完了exporter这一章,又有一点想法和测试,总结一些细节问题。

一 。符号表是一个hash,值是符号名,在当前包中使用,值是typeglob ;

       例如 某一项是  ff   =》  *main::ff    

     值 *main::ff   包含  array  scalar  hash glob  format 等等

        @{*ff}   ${*ff}   %{*ff} 可以访问相应的值  array  scalar , 这里main是缺省了的。

     把缺省补齐,会便于后面的理解。


二。.typeglob 是一种一对多的hash 结构

     

    用*号进行访问,访问typeglob时 会先查找符号表,但是查找哪一个包的符号表和*号后面的串有关。

        例如*ff  那么会查找当前包的符号表, *min::ff 那么查找min 包的符号表。

package m;

        *ff= *tt; 

那么m包的符号表中就添加       ff =》 *m::tt       tt => *m::tt     ;这个别名等同于引用,tt 中 对应的 array 修改了  ,     @{*ff} 的值也被修改

       package m;

     *{main::ff} =*tt               

  main包的符号表 添加         ff =>  *m::tt   

即:glob会先匹配包名,没有包名,包名就是当前包,   并修改相应的符号表。

          所以import机制,可以在其他包内,修改caller包的符号表。

三。typeglob的访问

        {*@R_301_6889@} 加上花括号,前面加上 &,@ $  即可访问  ,*@R_301_6889@ 就由于一个引用一般。

总结

以上是内存溢出为你收集整理的perl中的typeglob(三)全部内容,希望文章能够帮你解决perl中的typeglob(三)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1292556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存