免费注册 查看新帖 |

Chinaunix

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

请教两个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-10 11:09 |只看该作者 |倒序浏览
本帖最后由 bandaotidejia 于 2014-11-10 11:23 编辑

之前做c开发,现在做perl发现很多理解起来有点费解,请前辈指教

1 perl的hash表 %xxx 和c的hash是不是不一样,hash本来是将字符串映射为一个地址,但是perl好像都是指定一个数字 比如:
%abc= (
        name => 3,
        medium => 1,
        large => 2,

);


对于下面的代码,keys是perl内置的变量吗?
  @sts = keys %abc;
  foreach $dkey (@sts)
  {
    print dout1 "$dkey;\n";//这个是打印出所有的key值吗?
  }

如果打印多少value是不是得这样:
  @sts = values %abc;
  foreach $dkey (@sts)
  {
    print dout1 "$dkey;\n";
  }
2 $$ 表示变量的变量,是不是和c里面地址的地址类似,好像还不一样

比如$$abc{"Name"};是什么意思啊?

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
2 [报告]
发表于 2014-11-10 11:43 |只看该作者
我觉得 Perl 是动态类型的 C+shell +sed/awk

hash 把字符串映射为一个 scalar,scalar 包括了数字、字符串、引用。

keys values 是处理 hash 的关键字/内置函数。

引用是安全的指针,它没法做数学运算,只能通过取了一个值的引用来创建,不存在空引用。

C中 *a 是取指针a的值,Perl 中 $$a  是取引用 $a 指向的 scalar, %$a 是取 $a 指向的 hash ,解引用时需要根据类型选择是 $$a 还是 @$a 还是 %$a 。这不科学,没必要指明类型($%@)才对,但 Perl 的语法决定了它需要这样设计。

单独的 $$ 和shell 中一样表示当前进程的PID。Perl 的变量的名字可以是单个符号,比如 $$ $! $@ @- %- 怎么同 $$a 区分这个靠语法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP