diff options
| -rw-r--r-- | challenge-056/mark-anderson/perl/ch-2.pl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/challenge-056/mark-anderson/perl/ch-2.pl b/challenge-056/mark-anderson/perl/ch-2.pl new file mode 100644 index 0000000000..4045c7dae7 --- /dev/null +++ b/challenge-056/mark-anderson/perl/ch-2.pl @@ -0,0 +1,23 @@ +#!/usr/bin/env perl +use Modern::Perl; +use List::Util qw/sum/; +use Tree::DAG_Node; +use feature qw/signatures/; +no warnings qw/experimental::signatures/; + +my $lol = [ [ [ [7], [2], 11 ], 4 ], [ [13], [ [1], 9 ], 8 ], 5 ]; + +my $tree = Tree::DAG_Node->lol_to_tree($lol); + +$tree->walk_down({callback => \&traverse}); + +say for $tree->draw_ascii_tree->@*; + +sub traverse($node, $options) { + unless ($node->daughters) { + my @nodes = reverse ($node->name, (map { $_->name } $node->ancestors)); + say join(" + ", @nodes), " == 22" if (sum @nodes) == 22; + } + + return 1; +} |
