in reply to Re^3: 2D binning
in thread 2D binning

You must be using a pre-5.10 version of Perl. Try:

#!/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;

You can vary the number of datapoints generated by using a command line like:

perl -s theScript.pl -X=100 -Y=100

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"I'd rather go naked than blow up my ass"