【问题标题】:perl return all elements in array individually from subroutineperl 从子程序中分别返回数组中的所有元素
【发布时间】:2014-08-01 01:55:42
【问题描述】:

这里的总 perl 菜鸟。

我正在尝试编写一个程序:

  1. 在一个子程序中处理多组单词(一个数组=一组)
  2. 将结果返回到一个巨大的数组中
  3. 稍后在程序中修改巨大的数组

目前,我的巨大数组是一个数组数组,使用起来很麻烦。有什么方法可以将结果作为单个元素而不是数组引用返回?较小的数组具有可变长度。

所以说处理完我的数组结果是这样的:

@array=["A", "B", "C", "D"];

我想要:

@giganticarray=["array1stuff", "etc", "A", "B", "C", "D", "array3stuff", "etc"];

我试过了:

foreach (@array){
        return $_;
}

还有这个

for (my $n=scalar (@array); $n>0; $n--) {
        return $array[$n];
}

我在网上找不到任何信息,但可能是因为我在寻找错误的东西。如有任何帮助,我将不胜感激。

【问题讨论】:

  • 您是否意识到@array = [ "a", "b" ] 将数组引用分配给@array?这是故意的吗?您使用的是 -w 还是 use warnings;@array = ( @ar1, @ar2, @ar3 ); 会给你一个平面数组,其中包含其他 3 的内容。你读过骆驼书吗?
  • 你能发布一些你的实际代码吗?你的解释很难理解。

标签: perl return elements subroutine


【解决方案1】:

展平数组数组,您只需要

@giganticarray = map { ref $_ ? @$_ : $_ } @giganticarray

但是,如果您首先按照您想要的方式生成数组,它会更简洁。向我们展示您的代码,我们可以告诉您如何操作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多