G'day jaiieq,
I appear to have identified more paths than you show (e.g. 0:6 6:12 12:24 is not in your list). Here's the code:
#!/usr/bin/env perl -l use strict; use warnings; my %route_from; my %routes_starting_at; my @paths = qw{0:6 0:12 0:18 0:24 6:12 6:18 6:24 12:18 12:24 18:24}; map { push @{$route_from{$_->[0]}}, $_->[1] } map { [ split /:/ ] } @p +aths; for my $s (sort { $b <=> $a } keys %route_from) { for my $e (sort { $a <=> $b } @{$route_from{$s}}) { my $path = "$s:$e"; if (exists $routes_starting_at{$e}) { for my $r (@{$routes_starting_at{$e}}) { my $ext_path = join ' ' => $path, $r; push @{$routes_starting_at{$s}}, $ext_path; } } else { push @{$routes_starting_at{$s}}, $path; } } } for my $k (sort { $a <=> $b } keys %routes_starting_at) { print for @{$routes_starting_at{$k}}; }
Output:
$ pm_start_end_graph.pl 0:6 6:12 12:18 18:24 0:6 6:12 12:24 0:6 6:18 18:24 0:6 6:24 0:12 12:18 18:24 0:12 12:24 0:18 18:24 0:24 6:12 12:18 18:24 6:12 12:24 6:18 18:24 6:24 12:18 18:24 12:24 18:24
-- Ken
In reply to Re: Selectively iterate through an array
by kcott
in thread Selectively iterate through an array
by jaiieq
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |