#!/usr/bin/perl -slw use strict; use Data::Dump qw[ pp ]; our $Y ||= 10; ## changed from //= for pre-5.10 our $X ||= 10; my @xs = map -3+rand 6, 1 .. $X; my @ys = map -3+rand 6, 1 .. $Y; my %bins; for my $x ( @xs ) { my $xc = ( int( $x * 10 ) + 0.5 ) / 10; for my $y ( @ys ) { my $yc = ( int( $y * 10 ) + 0.5 ) / 10; ++$bins{ "$xc:$yc" }; } } pp \%bins; printf "Buckets used: %d, total values %d \n", scalar keys %bins, sum values %bins; #### perl -s theScript.pl -X=100 -Y=100