From 799aaa577a09c9a4f2d0271c5497c6ed0a839095 Mon Sep 17 00:00:00 2001 From: Yitzchak Scott-Thoennes Date: Mon, 19 May 2025 16:05:33 -0400 Subject: challenge 322 idiomatic perl solutions by ysth --- challenge-322/ysth/perl/README.md | 1 + challenge-322/ysth/perl/ch-1.pl | 6 ++++++ challenge-322/ysth/perl/ch-2.pl | 7 +++++++ 3 files changed, 14 insertions(+) create mode 100644 challenge-322/ysth/perl/README.md create mode 100644 challenge-322/ysth/perl/ch-1.pl create mode 100644 challenge-322/ysth/perl/ch-2.pl (limited to 'challenge-322') diff --git a/challenge-322/ysth/perl/README.md b/challenge-322/ysth/perl/README.md new file mode 100644 index 0000000000..60d86e8401 --- /dev/null +++ b/challenge-322/ysth/perl/README.md @@ -0,0 +1 @@ +# Solutions by Yitzchak Scott-Thoennes diff --git a/challenge-322/ysth/perl/ch-1.pl b/challenge-322/ysth/perl/ch-1.pl new file mode 100644 index 0000000000..2857d95de6 --- /dev/null +++ b/challenge-322/ysth/perl/ch-1.pl @@ -0,0 +1,6 @@ +use 5.036; + +my ($string, $group_size) = @ARGV; + +# yes, you can do this without the double reverse, but not as efficiently +say scalar reverse((reverse $string =~ y/-//dr) =~ s/.{$group_size}\K(?!\z)/-/sgr) diff --git a/challenge-322/ysth/perl/ch-2.pl b/challenge-322/ysth/perl/ch-2.pl new file mode 100644 index 0000000000..306e14aaeb --- /dev/null +++ b/challenge-322/ysth/perl/ch-2.pl @@ -0,0 +1,7 @@ +use 5.036; +use List::Util 'uniq'; + +my @integers = @ARGV; + +my @ordered = sort { $a <=> $b } uniq @integers; +say join ' ', { map(($ordered[$_-1], $_), 1..@ordered) }->@{@integers}; -- cgit