aboutsummaryrefslogtreecommitdiff
path: root/challenge-021
diff options
context:
space:
mode:
authorRuben Westerberg <drclaw@mac.com>2019-08-18 11:36:48 +1000
committerRuben Westerberg <drclaw@mac.com>2019-08-18 11:36:48 +1000
commit2cc2c414fdce3df9f748c3c408feb328b4d30b48 (patch)
tree7fb4154a371c06651fdd508db4431ad009945479 /challenge-021
parent5796c33fad4e1d36bf2aafe0ba452d0c51039a16 (diff)
downloadperlweeklychallenge-club-2cc2c414fdce3df9f748c3c408feb328b4d30b48.tar.gz
perlweeklychallenge-club-2cc2c414fdce3df9f748c3c408feb328b4d30b48.tar.bz2
perlweeklychallenge-club-2cc2c414fdce3df9f748c3c408feb328b4d30b48.zip
Added ch2 for p6
Diffstat (limited to 'challenge-021')
-rwxr-xr-xchallenge-021/ruben-westerberg/perl5/ch-1.pl1
-rwxr-xr-xchallenge-021/ruben-westerberg/perl5/ch-2.pl5
-rwxr-xr-xchallenge-021/ruben-westerberg/perl6/ch-2.p620
3 files changed, 20 insertions, 6 deletions
diff --git a/challenge-021/ruben-westerberg/perl5/ch-1.pl b/challenge-021/ruben-westerberg/perl5/ch-1.pl
index 4af2eb221f..669f076aad 100755
--- a/challenge-021/ruben-westerberg/perl5/ch-1.pl
+++ b/challenge-021/ruben-westerberg/perl5/ch-1.pl
@@ -14,5 +14,4 @@ while ($i <= $degree ) {
state $fac=1;
$sum+=1/($fac*=$i++);
}
-#printf "Eulers constant to $degree terms:\n%s\n",$sum->as_float(100);
printf "Eulers constant to $degree terms:\n%s\n",$sum;
diff --git a/challenge-021/ruben-westerberg/perl5/ch-2.pl b/challenge-021/ruben-westerberg/perl5/ch-2.pl
index 05b23a5fbe..e2cf7d0afa 100755
--- a/challenge-021/ruben-westerberg/perl5/ch-2.pl
+++ b/challenge-021/ruben-westerberg/perl5/ch-2.pl
@@ -1,9 +1,4 @@
#!/usr/bin/env perl
-
-my $uri=$ARGV[0]//"http://my.test.url/where/is/../it";
-#split
-#
-#Reuse code from week 17
use strict;
use warnings;
use v5.26;
diff --git a/challenge-021/ruben-westerberg/perl6/ch-2.p6 b/challenge-021/ruben-westerberg/perl6/ch-2.p6
new file mode 100755
index 0000000000..204001f1f1
--- /dev/null
+++ b/challenge-021/ruben-westerberg/perl6/ch-2.p6
@@ -0,0 +1,20 @@
+#!/usr/bin/env perl6
+
+my $URI=@*ARGS[0]//'http://a.uri/with/strange%65characters{}?query=true#frag<>';
+
+print "Original URI:\t$URI\n";
+#%Encode any character outside of restriced and unrestricted set except %
+$URI=S:g/(<-[0..9a..zA..Z\-_.~\%\!\*\'\(\)\;\:\@\&\=\+\$\,\/\?\#\[\]]>)/{sprintf("%%%2X",ord $0.Str)}/ given $URI;
+
+#Normalize decode any encoded unresreved characters. Normalize encoding to upper case
+$URI=S:g/\%(<[a..fA..F0..9]>**2)/{decode($0)}/ given $URI;
+sub decode ($h){
+ my $c=chr :16($h.Str);
+ /<[0..9a..zA..Z\-_.~]>/ ?? $c!!uc "%$h" given $c;
+ #"AAA";
+}
+
+#Scheme to lower case
+$URI=S/^(<[a..zA..Z]><[a..zA..Z\-\.\+]>+)/{uc $0}/ given $URI;
+
+print "Normalized URI:\t$URI\n";