my @data = ( [ 123.7, 456.7 ], [ 564.7, 234.9 ], ); for my $datum ( @data ) { my( $x, $y ) = @$_; $bins[ int $x ][ int $y ]++; } for my $x ( 0 .. $#bins ) { defined $bins[$x] or next; for my $y ( 0 .. $#{$bins[$x]} ) { defined $bins[$x][$y] or next; print "$x $y $bins[$x][$y]\n"; } }