aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-089/walt-mankowski/perl/ch-2.pl35
1 files changed, 35 insertions, 0 deletions
diff --git a/challenge-089/walt-mankowski/perl/ch-2.pl b/challenge-089/walt-mankowski/perl/ch-2.pl
new file mode 100644
index 0000000000..850cc370b0
--- /dev/null
+++ b/challenge-089/walt-mankowski/perl/ch-2.pl
@@ -0,0 +1,35 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use feature qw(:5.32);
+use experimental qw(signatures);
+
+# TASK #2 › Magical Matrix
+#
+# Write code to produce a 3x3 magic square
+
+my @m;
+my $m = 3;
+my $r = 0;
+my $c = 1;
+
+# fill in the magic square using the Siamese method
+for my $i (1..9) {
+ $m[$r][$c] = $i;
+ my $r1 = ($r - 1) % $m;
+ my $c1 = ($c + 1) % $m;
+ if (defined $m[$r1][$c1]) {
+ $r = ($r + 1) % $m;
+ } else {
+ $r = $r1;
+ $c = $c1;
+ }
+}
+
+# print the result
+for my $r (0..$m-1) {
+ for my $c (0..$m-1) {
+ print "$m[$r][$c] ";
+ }
+ print "\n";
+}