我有一个存储lat / long的数组。例如:
@values[0] = "-0.709999984318709,60.690000003554324"
我正在尝试根据逗号将其分为两个数组@lat
和@long
。
我该怎么做?
由于
答案 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];
}
有很多方法可以做到这一点,但我已经以一种应该显示如何处理数组的方式完成了它。