如何将数组值拆分为perl中的单独数组

时间:2013-06-04 09:00:23

标签: arrays perl

我有一个存储lat / long的数组。例如:

@values[0] = "-0.709999984318709,60.690000003554324"

我正在尝试根据逗号将其分为两个数组@lat@long

我该怎么做?

由于

2 个答案:

答案 0 :(得分:5)

我假设您想要将每个纬度和经度值保持在一起,在这种情况下,将数组转换为二维数组是合适的:

my @latlong = map { [ split /,/, $_, 2 ] } @values 

我在这里使用了split的完整符号来调用2个字段的LIMIT条件。这些数据可能无关紧要,但如果条件发生变化则可能很重要。

map语句的代码首先将@values的每个元素拆分为两个,将结果列表2放入一个匿名数组[ ... ],然后将其插入到新数组中。使用Data::Dumper打印时,生成的数组看起来像这样:

$VAR1 = [
          [
            '-0.709999984318709',
            '60.690000003554324'
          ]
        ];

答案 1 :(得分:4)

首先,最好写$ values [0]来引用数组元素。

假设逗号是一致的,split命令将在这里帮助你:

foreach (@values) {
  my @separated = split(',', $_);
  push @lat, $separated[0];
  push @long, $separated[1];
}

有很多方法可以做到这一点,但我已经以一种应该显示如何处理数组的方式完成了它。