Perl to Ruby conversion (multidimensional arrays)
- by Alex
I'm just trying to get my head around a multidimensional array creation from a perl script i'm currently converting to Ruby, I have 0 experience in Perl, as in i opened my first Perl script this morning. 
Here is the original loop:
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 ] };
        }
    }
}
and what i have so far in Ruby:
  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
The part i'm unsure of is nested right at the root of the loops, push @{$tl->{$zoom}},{ xyz => [ $tx, $ty, $zoom ] };
I'm sure this will be very simple for a seasoned Perl programmer, thanks! `