aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author冯昶 <seaker@qq.com>2021-04-26 15:18:38 +0800
committer冯昶 <seaker@qq.com>2021-04-26 15:18:38 +0800
commit0142974e5f11adadbaa7ca8d71de9db345318519 (patch)
tree7ef8e90ccfcf1c4d04e944b85358e55224e807d2
parent8e8759a0d1ac0cb3c7e329b52fd3a242eb1781f7 (diff)
downloadperlweeklychallenge-club-0142974e5f11adadbaa7ca8d71de9db345318519.tar.gz
perlweeklychallenge-club-0142974e5f11adadbaa7ca8d71de9db345318519.tar.bz2
perlweeklychallenge-club-0142974e5f11adadbaa7ca8d71de9db345318519.zip
challenge 110, raku solutions
-rwxr-xr-xchallenge-110/feng-chang/raku/ch-1.raku16
-rwxr-xr-xchallenge-110/feng-chang/raku/ch-2.raku8
-rw-r--r--challenge-110/feng-chang/raku/ch-2.txt5
3 files changed, 29 insertions, 0 deletions
diff --git a/challenge-110/feng-chang/raku/ch-1.raku b/challenge-110/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..7e6f7bd5cc
--- /dev/null
+++ b/challenge-110/feng-chang/raku/ch-1.raku
@@ -0,0 +1,16 @@
+#!/bin/env raku
+
+grammar Phone-Number {
+ regex TOP { <prefix> \s+ <local> }
+ token prefix { '+'\d\d || '('\d\d')' || \d\d\d\d }
+ token local { \d ** 10 }
+}
+
+my @numbers =
+ '0044 1148820341',
+ '+44 1148820341',
+ '44-11-4882-0341',
+ '(44) 1148820341',
+ '00 1148820341';
+
+.put if Phone-Number.parse($_) for @numbers;
diff --git a/challenge-110/feng-chang/raku/ch-2.raku b/challenge-110/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..78a5c3dfb3
--- /dev/null
+++ b/challenge-110/feng-chang/raku/ch-2.raku
@@ -0,0 +1,8 @@
+#!/bin/env raku
+
+sub MAIN(Str:D $f where *.IO.e = 'ch-2.txt') {
+ my @a = $f.IO.lines».split(',');
+ for ^@a[0].elems -> $i {
+ put @a.map(*[$i]).join(',');
+ }
+}
diff --git a/challenge-110/feng-chang/raku/ch-2.txt b/challenge-110/feng-chang/raku/ch-2.txt
new file mode 100644
index 0000000000..716ebdce75
--- /dev/null
+++ b/challenge-110/feng-chang/raku/ch-2.txt
@@ -0,0 +1,5 @@
+name,age,sex
+Mohammad,45,m
+Joe,20,m
+Julie,35,f
+Cristina,10,f