Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Selectively iterate through an array

by kennethk (Abbot)
on Mar 14, 2013 at 15:57 UTC ( #1023495=note: print w/replies, xml ) Need Help??

in reply to Selectively iterate through an array

As with nearly everything in Perl, the answer is a hash. Specifically, a hash of arrays constructed from your colon-separated data set.
my @input = qw(0:6 0:12 0:18 0:24 6:12 6:18 6:24 12:18 12:24 18:24); my %link; for (@input) { my ($key, $value) = split /:/; push @{$link{$key}}, $value; }
which gives
$VAR1 = { '6' => [ '12', '18', '24' ], '18' => [ '24' ], '0' => [ '6', '12', '18', '24' ], '12' => [ '18', '24' ] };

You then just need to connect the dots, which I'd probably implement with a recursive subroutine.

Note that the confusion about the start and end definition of your chains likely comes from the fact that, in your example, you seem to use all possible values for starts, but only 24 as an end.

#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1023495]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2017-06-24 01:13 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (555 votes). Check out past polls.