From 2cc2c414fdce3df9f748c3c408feb328b4d30b48 Mon Sep 17 00:00:00 2001 From: Ruben Westerberg Date: Sun, 18 Aug 2019 11:36:48 +1000 Subject: Added ch2 for p6 --- challenge-021/ruben-westerberg/perl5/ch-1.pl | 1 - challenge-021/ruben-westerberg/perl5/ch-2.pl | 5 ----- challenge-021/ruben-westerberg/perl6/ch-2.p6 | 20 ++++++++++++++++++++ 3 files changed, 20 insertions(+), 6 deletions(-) create mode 100755 challenge-021/ruben-westerberg/perl6/ch-2.p6 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"; -- cgit