From 49388d434dba7f86ba30becfb1afdc1fa3909b81 Mon Sep 17 00:00:00 2001 From: KjetilS Date: Tue, 11 Nov 2025 00:50:16 +0100 Subject: https://theweeklychallenge.org/blog/perl-weekly-challenge-347/ --- challenge-347/kjetillll/perl/ch-1.pl | 13 +++++++++++++ challenge-347/kjetillll/perl/ch-2.pl | 15 +++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 challenge-347/kjetillll/perl/ch-1.pl create mode 100644 challenge-347/kjetillll/perl/ch-2.pl diff --git a/challenge-347/kjetillll/perl/ch-1.pl b/challenge-347/kjetillll/perl/ch-1.pl new file mode 100644 index 0000000000..8505fd31cf --- /dev/null +++ b/challenge-347/kjetillll/perl/ch-1.pl @@ -0,0 +1,13 @@ + +sub f { + pop() =~ /^(\d+)\w* (\w\w\w )(\d{4})/ or die; + my $m = 1 + index('Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ', $2) / 4; + sprintf "$3-%02d-%02d", $m || die, $1 +} + +use Test::More tests => 5; +is f("1st Jan 2025"), "2025-01-01"; +is f("22nd Feb 2025"), "2025-02-22"; +is f("15th Apr 2025"), "2025-04-15"; +is f("23rd Oct 2025"), "2025-10-23"; +is f("31st Dec 2025"), "2025-12-31"; diff --git a/challenge-347/kjetillll/perl/ch-2.pl b/challenge-347/kjetillll/perl/ch-2.pl new file mode 100644 index 0000000000..9fbce101b1 --- /dev/null +++ b/challenge-347/kjetillll/perl/ch-2.pl @@ -0,0 +1,15 @@ +sub f { + pop() + =~ s/\D//gr + =~ s/\d{3}/$&-/gr + =~ s/-$//gr + =~ s/(\d)-(\d)$/-$1$2/gr +} + +use Test::More tests => 5; +is f("1-23-45-6"), "123-456"; +is f("1234"), "12-34"; +is f("12 345-6789"), "123-456-789"; +is f("123 4567"), "123-45-67"; +is f("123 456-78"), "123-456-78"; + -- cgit