Hi -

Please try:

use strict;

my @list = (1, 2, 3, 4, 10, 14, 15, 16, 20, 34, 35, 36,);
my %conseq; # temp hash
$conseq{$_} = $_ for (@list);
for (keys %conseq) {delete $conseq{$_} unless $conseq{$_-1} or
$conseq{$_+1}}
my @conseq; # result (note: remember scalars, arrays, hashes
            # have their own namespaces, so same "name" is ok)
push @conseq, $_ for (sort {$a <=> $b} keys %conseq);
print "$_\n" for (@conseq);

Maybe people will yell at me because it's such a kludge, but it works:
1) copy to hash with the key the same as value,
2) pass hash deleting keys that don't have +1 or -1 neighbors,
3) numerically sort hash and populate result array.

Oh, well...

Aloha - Beau.

-----Original Message-----
From: Haitham N Traboulsi [mailto:[EMAIL PROTECTED]]
Sent: Friday, May 17, 2002 4:09 PM
To: [EMAIL PROTECTED]
Subject: help!


Hi,
I am working on a chunk of PERL software that can find out the groups of
consecutive numbers located within a list. For instance imagine that the
list contains 1, 2, 3, 4, 10, 14, 15, 16, 20, 34, 35,
36,.......................
the program has to locate 1, 2, 3, 4     14, 15, 16     34, 35, 36 as
groups. I would appreciate any help with this problem.  thanks a lot.


Best wishes.

Haitham N Traboulsi
------------------------------------------
Department of Computing
University of Surrey
GU2 7XH



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to