aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-322/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-322/jaldhar-h-vyas/perl/ch-1.pl19
-rwxr-xr-xchallenge-322/jaldhar-h-vyas/perl/ch-2.pl13
-rwxr-xr-xchallenge-322/jaldhar-h-vyas/raku/ch-1.raku20
-rwxr-xr-xchallenge-322/jaldhar-h-vyas/raku/ch-2.raku14
5 files changed, 67 insertions, 0 deletions
diff --git a/challenge-322/jaldhar-h-vyas/blog.txt b/challenge-322/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..963415f713
--- /dev/null
+++ b/challenge-322/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2025/05/perl_weekly_challenge_week_322.html
diff --git a/challenge-322/jaldhar-h-vyas/perl/ch-1.pl b/challenge-322/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..9ed2b3ea97
--- /dev/null
+++ b/challenge-322/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/perl
+use v5.38;
+
+my ($str, $i) = @ARGV;
+
+$str =~ s/-//g;
+
+my $pos = 0;
+my $len = length $str;
+
+my @segments = substr($str, $pos, $len % $i) || ();
+$pos += $len % $i;
+
+while ($pos < $len) {
+ push @segments, (substr($str, $pos, $i));
+ $pos += $i;
+}
+
+say join q{-}, @segments; \ No newline at end of file
diff --git a/challenge-322/jaldhar-h-vyas/perl/ch-2.pl b/challenge-322/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..19d45eb182
--- /dev/null
+++ b/challenge-322/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,13 @@
+#!/usr/bin/perl
+use v5.38;
+
+my @ints = @ARGV;
+
+my %ranked;
+my $rank = 1;
+
+for my $int (sort {$a <=> $b} @ints) {
+ $ranked{$int} //= $rank++;
+}
+
+ say q{(}, (join q{, }, map { $ranked{$_} } @ints), q{)};
diff --git a/challenge-322/jaldhar-h-vyas/raku/ch-1.raku b/challenge-322/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..9da16094eb
--- /dev/null
+++ b/challenge-322/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ Str $str,
+ Int $i
+) {
+ my $dashless = $str.subst(q{-}, :g);
+ my $pos = 0;
+ my $len = $dashless.chars;
+
+ my @segments = $dashless.substr($pos, $len % $i) || ();
+ $pos += $len % $i;
+
+ while $pos < $len {
+ @segments.push($dashless.substr($pos, $i));
+ $pos += $i;
+ }
+
+ @segments.join(q{-}).say;
+} \ No newline at end of file
diff --git a/challenge-322/jaldhar-h-vyas/raku/ch-2.raku b/challenge-322/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..75d95d9e3d
--- /dev/null
+++ b/challenge-322/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,14 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ *@ints
+) {
+ my %ranked;
+ my $rank = 1;
+
+ for @ints.sort({$^a <=> $^b}) -> $int {
+ %ranked{$int} //= $rank++;
+ }
+
+ say q{(}, @ints.map({ %ranked{$_} }).join(q{, }), q{)};
+} \ No newline at end of file