美文网首页
Perl 变量 内部实现机制

Perl 变量 内部实现机制

作者: firefive | 来源:发表于2015-01-27 14:09 被阅读0次

核心模块 Devel::Peek  允许我们以C语言的角度来观察一个perl 标量。

数组的源代码定义为

struct xpvav {

char*  xav_array;  /* pointer to first array element */

SSize_t xav_fill;  /* Index of last element present */

SSize_t xav_max;    /* max index for which array has space */

IV      xof_off;    /* ptr is incremented by offset */

NV      xnv_nv;    /* numeric value, if any */

MAGIC*  xmg_magic;  /* magic for scalar array */

HV*    xmg_stash;  /* class package */

SV**    xav_alloc;  /* pointer to malloced string */

SV*    xav_arylen;

U8      xav_flags;

};

试着运行命令查看啊

C:\Users>perl  -MDevel::Peek -le "@a=(1,2,3); Dump(\@a)"

SV = IV(0x74bed0) at 0x74bed4

REFCNT = 1

FLAGS = (TEMP,ROK)

RV = 0x26cf97c

SV = PVAV(0x74cc38) at 0x26cf97c

REFCNT = 2

FLAGS = ()

ARRAY = 0x26bf5dc

FILL = 2

MAX = 3

ARYLEN = 0x0

FLAGS = (REAL)

Elt No. 0

SV = IV(0x74bda0) at 0x74bda4

REFCNT = 1

FLAGS = (IOK,pIOK)

IV = 1

Elt No. 1

SV = IV(0x74be70) at 0x74be74

REFCNT = 1

FLAGS = (IOK,pIOK)

IV = 2

Elt No. 2

SV = IV(0x74beb0) at 0x74beb4

REFCNT = 1

FLAGS = (IOK,pIOK)

IV = 3

相关文章

  • Perl 变量 内部实现机制

    核心模块 Devel::Peek 允许我们以C语言的角度来观察一个perl 标量。 数组的源代码定义为 struc...

  • Perl的内部保留变量(系统变量)

    记录,留作参考。注意定义变量时不要与之冲突。

  • block变量的捕获(capture)

    ?为了保证block内部能够正常访问外部变量,block有个变量捕获机制 auto变量的捕获

  • Perl 中的最终基类 UNIVERSAL

    UNIVERSAL 类是Perl中所有类的基类。 Perl 中的继承机制 在Perl中类的继承机制是通过@ISA ...

  • OC中的Block(二)

    block的变量捕获(capture) 为了保证block内部能够正常访问外部的变量,block有个变量捕获机制 ...

  • Block 之 变量捕获

    为了保证block内部能够正常访问外部的变量,block有个变量捕获机制,即捕获外部变量。 前言: 搞清成员变量、...

  • python赋值机制

    [1, 100, 3]改变变量x的值,变量y的值也随着改变,这与Python内部的赋值机制有关。 简单机制 先来看...

  • python中global使用

    在函数内部将global变量定义为全局变量。实现在函数内部改变变量值。 如下: def train(): gl...

  • Objective - C block(二)block的类型及捕

    (一)block 捕获变量类型 为了保证block内部能够正确访问外部的变量,block有一个变量捕获机制 (1)...

  • Perl单行(Perl One-Liners)命令

    Perl语言的一大好处就是,在日常处理各种小任务时,可以利用Perl单行的各种内置变量和参数快捷实现。本文记录平时...

网友评论

      本文标题:Perl 变量 内部实现机制

      本文链接:https://www.haomeiwen.com/subject/oozitttx.html