aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaldhar H. Vyas <jaldhar@braincells.com>2025-07-14 17:44:25 -0400
committerJaldhar H. Vyas <jaldhar@braincells.com>2025-07-14 18:51:47 -0400
commit7efe138cbea64fe6e6eec37751937486180f4a49 (patch)
tree47b3b020411af0dc5a1de71ab6cfbe78c0305d38
parentbd7fce4bd5d085c209a213f2daca1e79799c9e87 (diff)
downloadperlweeklychallenge-club-7efe138cbea64fe6e6eec37751937486180f4a49.tar.gz
perlweeklychallenge-club-7efe138cbea64fe6e6eec37751937486180f4a49.tar.bz2
perlweeklychallenge-club-7efe138cbea64fe6e6eec37751937486180f4a49.zip
Challenge 328 by Jaldhar H. Vyas.
-rw-r--r--challenge-328/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-328/jaldhar-h-vyas/perl/ch-1.pl19
-rwxr-xr-xchallenge-328/jaldhar-h-vyas/perl/ch-2.sh3
-rwxr-xr-xchallenge-328/jaldhar-h-vyas/raku/ch-1.raku17
-rwxr-xr-xchallenge-328/jaldhar-h-vyas/raku/ch-2.sh3
5 files changed, 43 insertions, 0 deletions
diff --git a/challenge-328/jaldhar-h-vyas/blog.txt b/challenge-328/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..effe16eb18
--- /dev/null
+++ b/challenge-328/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2025/07/perl_weekly_challenge_week_328.html
diff --git a/challenge-328/jaldhar-h-vyas/perl/ch-1.pl b/challenge-328/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..48efbe49db
--- /dev/null
+++ b/challenge-328/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/perl
+use 5.038;
+use warnings;
+
+sub pick(@array) {
+ return $array[int(rand(@array))];
+}
+
+sub newChar($left, $right) {
+ my $replacement = $left;
+
+ while ($replacement eq $left || $replacement eq $right) {
+ $replacement = pick('a' .. 'z');
+ }
+
+ return "$left$replacement$right";
+}
+
+$_ = shift; s/(.) \? (.)/newChar($1, $2)/egx; say; \ No newline at end of file
diff --git a/challenge-328/jaldhar-h-vyas/perl/ch-2.sh b/challenge-328/jaldhar-h-vyas/perl/ch-2.sh
new file mode 100755
index 0000000000..0d820861ee
--- /dev/null
+++ b/challenge-328/jaldhar-h-vyas/perl/ch-2.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+perl -E '$_=shift;while(s/([a-z])(??{uc $1})|([A-Z])(??{lc $2})//){}say' "$@"
diff --git a/challenge-328/jaldhar-h-vyas/raku/ch-1.raku b/challenge-328/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..0f473a16ce
--- /dev/null
+++ b/challenge-328/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,17 @@
+#!/usr/bin/raku
+
+sub newChar($left, $right) {
+ my $char = $left;
+
+ while $char eq $left || $char eq $right {
+ $char = ('a' .. 'z').pick;
+ }
+
+ return "$left$char$right";
+ }
+
+sub MAIN(
+ $str
+) {
+ $str.subst(/(.) \? (.)/, { newChar($0, $1) }, :g ).say;
+} \ No newline at end of file
diff --git a/challenge-328/jaldhar-h-vyas/raku/ch-2.sh b/challenge-328/jaldhar-h-vyas/raku/ch-2.sh
new file mode 100755
index 0000000000..de3bd5a303
--- /dev/null
+++ b/challenge-328/jaldhar-h-vyas/raku/ch-2.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+raku -e '$_=@*ARGS[0];while s/((<[a..z]>){}$($0.uc))||((<[A..Z]>){}$($0.lc))// {};.say' "$@"