aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuis Mochan <mochan@fis.unam.mx>2022-10-03 13:35:38 -0500
committerLuis Mochan <mochan@fis.unam.mx>2022-10-03 13:35:38 -0500
commit2c6b3d0227d78f7d06a9037bfc1ad7e992cc86c2 (patch)
tree09d36cb08a99be289b4b9a0519ee61e592b431af
parentfee6a412f87be22468a59bf308d2d08f234b46de (diff)
downloadperlweeklychallenge-club-2c6b3d0227d78f7d06a9037bfc1ad7e992cc86c2.tar.gz
perlweeklychallenge-club-2c6b3d0227d78f7d06a9037bfc1ad7e992cc86c2.tar.bz2
perlweeklychallenge-club-2c6b3d0227d78f7d06a9037bfc1ad7e992cc86c2.zip
Solve PWC185
-rw-r--r--challenge-185/wlmb/blog.txt1
-rwxr-xr-xchallenge-185/wlmb/perl/ch-1.pl21
-rwxr-xr-xchallenge-185/wlmb/perl/ch-2.pl10
3 files changed, 32 insertions, 0 deletions
diff --git a/challenge-185/wlmb/blog.txt b/challenge-185/wlmb/blog.txt
new file mode 100644
index 0000000000..be83de99cf
--- /dev/null
+++ b/challenge-185/wlmb/blog.txt
@@ -0,0 +1 @@
+https://wlmb.github.io/2022/10/03/PWC185/
diff --git a/challenge-185/wlmb/perl/ch-1.pl b/challenge-185/wlmb/perl/ch-1.pl
new file mode 100755
index 0000000000..b8431d843c
--- /dev/null
+++ b/challenge-185/wlmb/perl/ch-1.pl
@@ -0,0 +1,21 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 185
+# Task 1: MAC Address
+#
+# See https://wlmb.github.io/2022/10/03/PWC185/#task-1-mac-address
+use v5.36;
+use List::Util qw(all pairs);
+use experimental "try";
+die "Usage: $0 S1 [S2...]\nto convert strings Sn from hhhh.hhhh.hhhh to hh:hh:hh:hh:hh:hh"
+unless @ARGV;
+for (@ARGV) {
+ try {
+ my @quads=split /\./;
+ die "Expected 3 parts" unless @quads==3;
+ die "Expected 4-hex-digit parts" unless all {m/[0-9a-f]{4}/} @quads;
+ say "$_ -> ", join ":", map {join "", @$_} pairs map {split ""} @quads;
+ }
+ catch ($m) {
+ say "Failed for $_: $m";
+ }
+}
diff --git a/challenge-185/wlmb/perl/ch-2.pl b/challenge-185/wlmb/perl/ch-2.pl
new file mode 100755
index 0000000000..8159184eaa
--- /dev/null
+++ b/challenge-185/wlmb/perl/ch-2.pl
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 185
+# Task 2: Mask Code
+#
+# See https://wlmb.github.io/2022/10/03/PWC185/#task-2-mask-code
+use v5.36;
+for(@ARGV){
+ my $n=0;
+ say "$_ -> ", join "", map {$n<4 && ($n+=s/[A-Za-z0-9]/x/); $_} split ""
+}