Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Split the array elements in ranges

by viktor (Acolyte)
on Apr 16, 2013 at 10:00 UTC ( #1028859=perlquestion: print w/ replies, xml ) Need Help??
viktor has asked for the wisdom of the Perl Monks concerning the following question:

Hi, Can anyone tell me that if we have any module in cpan which can split the array elements in blocks of say 10. For example

@array=qw ( 1 2 3 10 11 12 13 20 21);

I want the output like this 1-10 5, 11-20 4, 20-30 1 thanks

Comment on Split the array elements in ranges
Download Code
Re: Split the array elements in ranges
by prashantktyagi (Scribe) on Apr 16, 2013 at 10:13 UTC
Re: Split the array elements in ranges
by hdb (Parson) on Apr 16, 2013 at 10:17 UTC

    What you want is some Histogram. Have a look at CPAN. Otherwise, use a hash for counting:

    use strict; use warnings; my @array=qw ( 1 2 3 10 11 12 13 20 21); my $bin = 10; my %hist; map { $hist{ (int(($_-1)/$bin)+1)*$bin }++ } @array; print join ",", map { ($_-9)."-$_ $hist{$_}" } sort keys %hist;
      thanks :)
Re: Split the array elements in ranges
by jwkrahn (Monsignor) on Apr 16, 2013 at 18:47 UTC

    List::MoreUtils has the natatime() function and it is probably already installed on your computer.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1028859]
Approved by kcott
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (11)
As of 2014-08-20 18:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (121 votes), past polls