perl - 标量到数组的转换
问题描述
我正在查看 Perl 脚本,我有一行:
my (@parmTypesList) = @$function_type_ref;
$function_type_ref
是传递给当前函数的字符串。是什么@$
意思??????
解决方案
@$var
是 的缩写@{ $var }
,等价于$var->@*
。这是一个数组取消引用。
它期望$var
持有对数组的引用,并产生以下内容之一:
- 在标量上下文中,数组的元素数
- 在列表上下文中,数组元素的值。
- 当需要数组时(例如
@$var = ...
,push @$var, ...
),数组本身。
在这种情况下,它是第二个。
尽管有名称,但对函数的引用绝不会起作用。
但是字符串可能会起作用,因为字符串可以用作参考。在这种情况下,字符串应该是变量的名称。这是一件非常可怕的事情,所以我们告诉 Perl 不要让我们使用use strict;
or来做这件事use v5.12;
。
明确一点:您应该始终使用use strict;
或等效。
推荐阅读
- aws-sdk-go - 更新使用 aws sdk go v2 连接到 EKS 集群的方法?
- algorithm - f(n) = o(g(n)) ve f(n) ≠ Ɵ(g(n))
- c++ - C++ 使用在编译时确定的字符串文字长度值
- python - 熊猫添加缺失值
- c# - 根据输入更改字符串
- docker - Kaniko 和 BuildKit/Buildx 有什么区别?
- sql - 如何从 postgres 文本列 json 字符串数组中删除一个值?
- r - 循环矩阵
- applescript - 脚本编辑器
如何在传递到要单击的数字单元格之前将“数据”包装在超链接中 - python - 包含常量的模块的类型提示