Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
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 imbibing at the Monastery: (8)
As of 2014-09-01 11:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (6 votes), past polls