Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
There's more than one way to do things
 
PerlMonks  

Re: Selectively iterate through an array

by kennethk (Monsignor)
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.


Comment on Re: Selectively iterate through an array
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1023495]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2014-04-20 00:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (485 votes), past polls