aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-330/wlmb/blog.txt1
-rwxr-xr-xchallenge-330/wlmb/perl/ch-1.pl20
-rwxr-xr-xchallenge-330/wlmb/perl/ch-2.pl12
3 files changed, 33 insertions, 0 deletions
diff --git a/challenge-330/wlmb/blog.txt b/challenge-330/wlmb/blog.txt
new file mode 100644
index 0000000000..9a2eddb4c9
--- /dev/null
+++ b/challenge-330/wlmb/blog.txt
@@ -0,0 +1 @@
+https://wlmb.github.io/2025/07/14/PWC330/
diff --git a/challenge-330/wlmb/perl/ch-1.pl b/challenge-330/wlmb/perl/ch-1.pl
new file mode 100755
index 0000000000..3821ff49a1
--- /dev/null
+++ b/challenge-330/wlmb/perl/ch-1.pl
@@ -0,0 +1,20 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 330
+# Task 1: Clear Digits
+#
+# See https://wlmb.github.io/2025/07/14/PWC330/#task-1-clear-digits
+use v5.36;
+die <<~"FIN" unless @ARGV;
+ Usage: $0 S1 S2...
+ to repeatedly remove digits from the string Sn, together with the closest
+ non-digit to its left.
+ Only lowercase letters and digits are allowed in the strings.
+ FIN
+for(@ARGV){
+ my $input=$_;
+ say("Only digits and lowercase letters allowed: $input"), next
+ unless /^[a-z0-9]*$/;
+ 1 while s/[a-z][0-9]//; #strip all letter-digit pairs
+ say("Couldn't strip all digits: $input -> $_"), next if /[0-9]/;
+ say "$input -> $_";
+}
diff --git a/challenge-330/wlmb/perl/ch-2.pl b/challenge-330/wlmb/perl/ch-2.pl
new file mode 100755
index 0000000000..da3d717b33
--- /dev/null
+++ b/challenge-330/wlmb/perl/ch-2.pl
@@ -0,0 +1,12 @@
+#!/usr/bin/env perl
+# Perl weekly challenge 330
+# Task 2: Title Capital
+#
+# See https://wlmb.github.io/2025/07/14/PWC330/#task-2-title-capital
+use v5.36;
+die <<~"FIN" unless @ARGV;
+ Usage: $0 S1 S2...
+ to convert words in the space-separated strings Sn to titlecase
+ or to lowercase if their length exceeds or not 2 characters.
+ FIN
+say join " ", map {(length($_) >2 && ucfirst)||$_} split " ", lc for @ARGV;