Beefy Boxes and Bandwidth Generously Provided by pair Networks Bob
go ahead... be a heretic
 
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 having an uproarious good time at the Monastery: (6)
As of 2014-04-20 20:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (487 votes), past polls