Perl 内部结构详解 -- PerlGuts Illustrated
发布时间:2020-12-16 00:20:40 所属栏目:大数据 来源:网络整理
导读:之前想看一下Perl的实现,无意中搜到了这篇文章,对Perl内部类型的结构解释的很清晰,推荐感兴趣的都仔细看一下,想优化的时候做到心中有数。 接下来的几篇blog将翻译这篇文档中常见类型的部分,做个记录,加深印象,同时也方便大家阅读理解。 PerlGuts Illu
之前想看一下Perl的实现,无意中搜到了这篇文章,对Perl内部类型的结构解释的很清晰,推荐感兴趣的都仔细看一下,想优化的时候做到心中有数。 接下来的几篇blog将翻译这篇文档中常见类型的部分,做个记录,加深印象,同时也方便大家阅读理解。 PerlGuts Illustrated直接命令行的方法查看:perl -MDevel::Peek -e "$a = 123; Dump $a" 简单的例子用来查看变量内部结构: use Devel::Peek; $a = 123; @a = 1..10; %a = 1..10; Dump $a; Dump @a; Dump %a; 标量: SV = IV(0x2410960) at 0x2410964 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 123 数组: SV = RV(0x3a7190) at 0x3a7184 REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x24109c4 SV = PVAV(0x3a80ac) at 0x24109c4 REFCNT = 2 FLAGS = () ARRAY = 0x24c1aec FILL = 9 MAX = 9 ARYLEN = 0x0 FLAGS = (REAL) Elt No. 0 SV = IV(0x24c0450) at 0x24c0454 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 1 Elt No. 1 SV = IV(0x24c0420) at 0x24c0424 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 2 Elt No. 2 SV = IV(0x24b7e40) at 0x24b7e44 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 3 Elt No. 3 SV = IV(0x24b7e50) at 0x24b7e54 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 4 Hash: SV = RV(0xe7190) at 0xe7184 REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x24aaa0c SV = PVHV(0x2401c94) at 0x24aaa0c REFCNT = 2 FLAGS = (SHAREKEYS) ARRAY = 0x24bd47c (0:3,1:5) hash quality = 150.0% KEYS = 5 FILL = 5 MAX = 7 RITER = -1 EITER = 0x0 Elt "1" HASH = 0x806b80c9 SV = IV(0x24b7ca0) at 0x24b7ca4 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 2 Elt "3" HASH = 0xa400c7f3 SV = IV(0x24b7c80) at 0x24b7c84 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 4 Elt "7" HASH = 0xecc9d984 SV = IV(0x24b7c60) at 0x24b7c64 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 8 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |