首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Perl中处理可变维数组

如何在Perl中处理可变维数组
EN

Stack Overflow用户
提问于 2019-05-26 00:02:02
回答 1查看 41关注 0票数 0

我有一个sub,它接收多维数组的引用并处理它。

问题是,底层数组可能是2D或3D,或者是具有最多两个字段的2D数组,这是对1D数组的引用。

有没有可能检测数组的维数,这样我就可以在这个sub中处理所有这些情况?或者我必须编写几个subs来处理所有不同的维度?

EN

回答 1

Stack Overflow用户

发布于 2019-05-26 00:11:34

与大多数动态语言一样,Perl中的数组只是一维的。通常通过让数组的每个元素引用另一个数组来表示二维数组-因此您实际上拥有一个数组的数组。如果内部数组的每个元素也是对第三个数组的引用,那么您实际上就拥有了一个三维数组。

如果事先不知道数组的深度,可以使用the ref function检查一个元素,看看它是否是一个引用;如果是,则取消对它的引用,从数组中获取另一个维度并进行处理。如果不是,则期望它是数组的叶元素。

一个潜在的陷阱是,Perl不会在数组上强制任何类型的结构;不同的元素可以是不同的类型。这意味着子数组可以与同一数组中的简单数字或字符串并存。这将取决于数组构造代码,以确保单个数组不会混合和匹配维度。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56306497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档