aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-056/mark-anderson/perl/ch-2.pl23
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..ac414bb808
--- /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 'sum';
+use Tree::DAG_Node;
+
+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 {
+ my($node, $options) = @_;
+
+ unless ($node->daughters) {
+ my @nodes = reverse ($node->name, (map { $_->name } $node->ancestors));
+ say join(" + ", @nodes), " == 22" if (sum @nodes) == 22;
+ }
+
+ return 1;
+}