arrays - 如何在 Perl 中取消引用数组?
问题描述
sub main
{
my (@A) = @_;
}
main([1,3,5,7]);
数组已使用上述代码输入。我无法获得原始数组;当我简单时print "@A"
,我得到了参考。但是,我找不到从中获取实际数组的方法。任何人都可以对这里发生的事情有所了解吗?
解决方案
您将数组引用(这是一个标量值)传递给子。您的@A
变量是一个数组数组。数组只有一个元素,它是您传递给子的数组引用。如果要打印传递的元素,可以使用以下@{ }
语法:
print "@{ $A[0] }\n";
但是,由于您只是传递了一个数组 ref,因此这不太可能是您想要的。检索它的一种方法是将其分配给子中的标量变量。然后你可以尊重它并将它分配给一个数组变量,使用@{ }
:
use warnings;
use strict;
main([1,3,5,7]);
sub main
{
my ($aref) = @_;
my @A = @{ $aref };
print "@A\n";
}
印刷:
1 3 5 7
推荐阅读
- r - ggplot2 - 2 变量聚集柱形图 - 变量 1 的渐变填充和变量 2 的实心填充
- angularjs - Angularjs 中的构造函数
- java - 如何缩小数字以猜测数字程序的逻辑错误
- c# - 如何在 Arcmap 中闪烁隐藏 DockableWindow 的选项卡
- javascript - PHP & AJAX - 获取数据时在另一个页面上不刷新
- java - 为什么 LinkedHashSet 没有 addFirst 方法?
- javascript - 显示月份和日期的 Javascript 日历
- css - 将图像大小调整为居中
- c# - SQLKata 简单 SELECT 查询返回合法表的“无效对象名称”?
- python - Python数学用科学计数法计算变量