diff options
| author | Niels van Dijke <perlboy@cpan.org> | 2023-05-09 07:28:08 +0000 |
|---|---|---|
| committer | Niels van Dijke <perlboy@cpan.org> | 2023-05-09 07:28:08 +0000 |
| commit | a1d9855b0219647655adae8b83ebbdbb3df5d607 (patch) | |
| tree | 6bc413f3443dc769cf376fb124068f7d30ababe1 | |
| parent | 488c528fc8725f3e183eae4073709f95edca33fb (diff) | |
| download | perlweeklychallenge-club-a1d9855b0219647655adae8b83ebbdbb3df5d607.tar.gz perlweeklychallenge-club-a1d9855b0219647655adae8b83ebbdbb3df5d607.tar.bz2 perlweeklychallenge-club-a1d9855b0219647655adae8b83ebbdbb3df5d607.zip | |
w216 - Task 1
| -rwxr-xr-x | challenge-216/perlboy1967/perl/ch1.pl | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/challenge-216/perlboy1967/perl/ch1.pl b/challenge-216/perlboy1967/perl/ch1.pl new file mode 100755 index 0000000000..6d62b56317 --- /dev/null +++ b/challenge-216/perlboy1967/perl/ch1.pl @@ -0,0 +1,48 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 216 +- https://theweeklychallenge.org/blog/perl-weekly-challenge-216 + +Author: Niels 'PerlBoy' van Dijke + +Task 1: Registration Number +Submitted by: Mohammad S Anwar + +You are given a list of words and a random registration number. + +Write a script to find all the words in the given list that has every letter in the +given registration number. + +=cut + +use v5.16; + +use common::sense; + +use Test::More; +use Test::Deep; + +sub registrationNumber ($\@) { + my $rnRE = sprintf '[%s]', + join('].*?[', + sort grep /[a-z]/,split //,lc shift); + map { $_->[0] } + grep { $_->[1] =~ /$rnRE/ } + map { [$_,join('',sort split //,lc)] } + @{$_[0]}; +} + +is_deeply([registrationNumber('AB1 2CD',@{[qw{abc abcd bcd}]})], + [qw{abcd}]); +is_deeply([registrationNumber('007 JB', @{[qw{job james bjorg}]})], + [qw{job bjorg}]); +is_deeply([registrationNumber('C7 RA2', @{[qw{crack road rac}]})], + [qw{crack rac}]); +is_deeply([registrationNumber('T7 RR9', @{[qw{tracker roadster rac}]})], + [qw{tracker roadster}]); +is_deeply([registrationNumber('P3R L58',@{[qw{perl raku}]})], + [qw{perl}]); + +done_testing; |
