首页 > 解决方案 > perl 中的标量是什么意思?

问题描述

在 perl 中,您具有三种主要数据类型,“标量、标量数组和标量关联数组”。perl 究竟想用“标量”这个名字来表达什么?什么是隐喻,应该形成的心理形象?

我可以推断出一个类比:单个值、值列表、命名值列表。但这并不能帮助我理解为什么使用“标量”这个词。Perl 的标量肯定不像梯子

标签: perlterminology

解决方案


变量(计算机科学)中原则性地描述了这个概念,其中说:

在计算机编程中,变量或标量是与相关符号名称配对的存储位置(由内存地址标识),其中包含一些已知或未知数量的信息,称为值。变量名是引用存储值的常用方法,除了引用变量本身,具体取决于上下文。

在 Perl 中,标量变量保存一个值。虽然 Perl 标量通常与符号名称相关联,但不一定如此;您可以拥有一个仅由标量引用引用且不与符号配对的标量。计算机编程中“标量”一词的用法可能源自数学中的类似用法,如Scalar (Mathematics)中所述:

标量是用于定义向量空间的字段元素。由多个标量描述的量,例如具有方向和大小的量,称为向量。

应用于 Perl,标量在perldoc perldata中描述:

标量可以包含三种不同风格中的任何一种的单个值:数字、字符串或引用。一般来说,从一种形式到另一种形式的转换是透明的。尽管标量可能不直接保存多个值,但它可能包含对数组或散列的引用,而后者又包含多个值。

Perl 标量在内部存储一些东西;IV(整数值)、NV(浮点数值)、PV(指向字符串值的指针)、SV(引用)、引用计数、一些用于跟踪标量是否具有 Unicode 语义的各种标志,其他“魔法”,以及正在使用的各种存储类型中的哪一种。并非所有这些存储桶都在任何给定时间都在使用,而填充哪些存储桶取决于标量的定义方式和使用方式(保存字符串的标量稍后可能会在内部填充 IV 或 NV 字段,如果它被视为一个数字)。这在perlguts中有描述,但您通常不需要担心它。

您可以非正式地将标量视为单个存储单元,其中可能包含数字、字符串或引用。您可以将标量视为独立变量、由标量引用引用的存储单元,或者是数组或散列的单个元素。


推荐阅读