0
我只是想讓我的頭從一個perl腳本創建一個多維數組,我目前正在轉換爲Ruby,我在Perl中有0個經驗,就像在我打開我的第一個Perl腳本今天早上。Perl到Ruby的轉換(多維數組)
這裏是原來的循環:
my $tl = {};
for my $zoom ($zoommin..$zoommax) {
my $txmin = lon2tilex($lonmin, $zoom);
my $txmax = lon2tilex($lonmax, $zoom);
# Note that y=0 is near lat=+85.0511 and y=max is near
# lat=-85.0511, so lat2tiley is monotonically decreasing.
my $tymin = lat2tiley($latmax, $zoom);
my $tymax = lat2tiley($latmin, $zoom);
my $ntx = $txmax - $txmin + 1;
my $nty = $tymax - $tymin + 1;
printf "Schedule %d (%d x %d) tiles for zoom level %d for download ...\n",
$ntx*$nty, $ntx, $nty, $zoom
unless $opt{quiet};
$tl->{$zoom} = [];
for my $tx ($txmin..$txmax) {
for my $ty ($tymin..$tymax) {
push @{$tl->{$zoom}},
{ xyz => [ $tx, $ty, $zoom ] };
}
}
}
和我有什麼至今紅寶石:
tl = []
for zoom in zoommin..zoommax
txmin = cm.tiles.xtile(lonmin,zoom)
txmax = cm.tiles.xtile(lonmax,zoom)
tymin = cm.tiles.ytile(latmax,zoom)
tymax = cm.tiles.ytile(latmin,zoom)
ntx = txmax - txmin + 1
nty = tymax - tymin + 1
tl[zoom] = []
for tx in txmin..txmax
for ty in tymin..tymax
tl[zoom] << xyz = [tx,ty,zoom]
puts tl
end
end
end
我不能確定的是嵌套就在環根部的部分, push @{$tl->{$zoom}},{ xyz => [ $tx, $ty, $zoom ] };
我確信這對於一位經驗豐富的Perl程序員來說非常簡單,謝謝! `
完美的感謝,哈希和數組的組合引起了我一些混淆 – Alex 2011-03-08 19:33:02
Data :: Dumper是你在處理複雜結構時炒的。只要讓它建立$ tl,然後:使用Data :: Dumper;自卸車($ tl); – 2011-03-09 08:37:40