Perl内部值类型深入解析
1. 标量值(Scalar Values)
标量值(SV)包含标量的值、引用计数和一个用于描述标量状态的位掩码。标量可以是整数值(IV)、双精度浮点数(NV)、字符串(PV)、引用(RV)或特殊用途对象(magical)。
1.1 操作SV的函数和宏
以下是一些用于创建、删除和修改SV的函数和宏:
| Function/Macro | Description |
| — | — |
| SV* newSViv(I32)
SV* newSVnv(double)
SV* newSVpv(char* str, int len)
| 分别从整数、双精度浮点数或字符串创建新的SV。如果 len
为0, newSVpv
会计算字符串的长度。 |
| SV* newSVsv(SV *)
| 创建现有SV的克隆。要创建空的SV,使用全局标量 sv_undef
,而不是 NULL
,例如: newSVsv(&sv_undef)
。 |
| SV* newSVrv(SV* rv, char *pkgname)
| 创建新的SV并使 rv
指向它。如果 pkgname
不为空,将 rv
绑定到该包。 |