【问题标题】:How to create dynamic arrays in perlperl中如何创建动态数组
【发布时间】:2015-01-06 17:14:43
【问题描述】:

我遇到一种情况,输入格式为
$n,后跟n 行,其中包含n 不同数组的元素。
喜欢

2  
1 2 3   
1 6   

表示我有 2 个数组,其中元素为 1,2,31,6

现在我真的不知道 N 可以有多大。如何创建动态数组并向它们存储值。数组可以命名为 array1、array2 或任何其他方法来区分不同的数组。

$n = <STDIN>;
for ($i = 0; $i < $n; $i++) {
    $l   = <STDIN>;
    @arr = split(" ", $l);
}

请改进此代码。

【问题讨论】:

  • Perl 中没有动态数组这种东西。您可能正在考虑多维数组。存储值只是问题的一半,但问题是您要如何处理这些值。
  • Perl 数组的大小不受限制。根据您的描述,任何数组都是“动态的”。

标签: perl


【解决方案1】:

您可以使用数组数组:

use strict;    
my @array;
while(<STDIN>) {
    my @line = split(" ", $_);
    push @array, \@line;
}

# Just to display what's inside your array:
use Data::Dumper;     
print Dumper(\@array);    

甚至更短:

use strict;
my @array;
push @array, [split ' ', $_] while(<STDIN>);

【讨论】:

  • print Dumper \@array
猜你喜欢
  • 1970-01-01
  • 2011-04-02
  • 2014-04-13
  • 2017-06-01
  • 2015-11-15
  • 2019-12-14
  • 2011-03-25
  • 2011-10-20
相关资源
最近更新 更多