Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

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 the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (12)
As of 2016-08-24 08:30 GMT
Find Nodes?
    Voting Booth?
    The best thing I ever won in a lottery was:

    Results (339 votes). Check out past polls.