diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-10-03 13:05:40 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-03 13:05:40 +0100 |
| commit | 845686c6ecce5e7bd1ddb865366fe0bb4914d438 (patch) | |
| tree | d6d2edb4006f8d8aaf7d033e531c25cd4a7db96b /challenge-185 | |
| parent | 72a580bc6f82cde2538d2394c7ddf51f18687fa8 (diff) | |
| parent | 28f612f47a1b95b37cdea25c1a2c081b63696f55 (diff) | |
| download | perlweeklychallenge-club-845686c6ecce5e7bd1ddb865366fe0bb4914d438.tar.gz perlweeklychallenge-club-845686c6ecce5e7bd1ddb865366fe0bb4914d438.tar.bz2 perlweeklychallenge-club-845686c6ecce5e7bd1ddb865366fe0bb4914d438.zip | |
Merge pull request #6833 from PerlBoy1967/branch-for-challenge-185
w185 - Task 1 & 2
Diffstat (limited to 'challenge-185')
| -rwxr-xr-x | challenge-185/perlboy1967/perl/ch-1.pl | 35 | ||||
| -rwxr-xr-x | challenge-185/perlboy1967/perl/ch-2.pl | 41 |
2 files changed, 76 insertions, 0 deletions
diff --git a/challenge-185/perlboy1967/perl/ch-1.pl b/challenge-185/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..145efb72ad --- /dev/null +++ b/challenge-185/perlboy1967/perl/ch-1.pl @@ -0,0 +1,35 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 185 + - https://theweeklychallenge.org/blog/perl-weekly-challenge-185/#TASK2 + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Mask Code +Submitted by: Mohammad S Anwar + +You are given a list of codes in many random format. + +Write a script to mask first four characters (a-z,0-9) and keep the rest as it is. + +=cut + +use v5.16; +use warnings; + +use Test::More; + + +sub macFormat ($) { + state $re = join '\.', ('([0-9a-f]{2})' x 2) x 3; + return join(':',$1,$2,$3,$4,$5,$6) + if ($_[0] =~ /(?i)^$re$/o); +} + + +is(macFormat('1ac2.34f0.b1c2'),'1a:c2:34:f0:b1:c2'); +is(macFormat('ABC1.20F1.345A'),'AB:C1:20:F1:34:5A'); + +done_testing; diff --git a/challenge-185/perlboy1967/perl/ch-2.pl b/challenge-185/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..d5cca9c7ff --- /dev/null +++ b/challenge-185/perlboy1967/perl/ch-2.pl @@ -0,0 +1,41 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 185 + - https://theweeklychallenge.org/blog/perl-weekly-challenge-185/#TASK2 + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Mask Code +Submitted by: Mohammad S Anwar + +You are given a list of codes in many random format. + +Write a script to mask first four characters (a-z,0-9) and keep the rest as it is. + +=cut + +use v5.16; +use warnings; + +use Test::More; +use Test::Deep qw(cmp_deeply); + + +sub maskcode { + state $re = '([^0-9a-z]*)([0-9a-z])' x 4; + my @r; + for (@_) { + push(@r,s/(?i)^$re/$1x$3x$5x$7x/or); + } + @r; +} + + +cmp_deeply([maskcode('ab-cde-123', '123.abc.420', '3abc-0010.xy')], + ['xx-xxe-123', 'xxx.xbc.420', 'xxxx-0010.xy']); +cmp_deeply([maskcode('1234567.a', 'a-1234-bc', 'a.b.c.d.e.f')], + ['xxxx567.a', 'x-xxx4-bc', 'x.x.x.x.e.f']); + +done_testing; |
